Работаем со шрифтами(doc

advertisement
Создаем приложение «Работа со шрифтами» (FontChng)
Задание:
Реализовать windows-приложение FontChng следующего вида:
Знакомимся со стандартными диалогами
и создаем контестное меню!
1. Познакомьтесь с приложением
FontChng.exe.
Обратите внимание на всплывающую
подсказку и воспользуйтесь контекстным
меню.
2. Познакомьтесь по MSDN с элементами Панели элементов:
FontDialog,
ColorDialog,
ContextMenuStrip.
3. Попробуйте, используя эти элементы, хотя бы частично
создать приложение, аналогичное приложению FontChng.exe.
Решение задания
1. Необходимые пространства имен:
using System;
using System.Drawing;
using System.Windows.Forms;
=========================
2. Будем считать, что наша главная форма имеет имя Form1, на ней уже
размещены поля и объекты, определенные заданием, тогда
помещаем на эту форму из «Панель элементов» элементы
FontDialog, ColorDialog, ContextMenuStrip, ToolTip и получаем
объекты, соответственно: fontDialog1, colorDialog1, toolTip1,
contextMenuStrip1.
3. На возникшей форме контекстного меню создаем необходимые нам
пункты, как на рисунке:
4. Далее выделяем форму Form1 и делаем по ней 2-й щелчок мышью и
создаем:
private void Form1_Load(object sender, EventArgs e){
// Пользователь может использовать диалоговое окно для
//
определения собственных цветов.
colorDialog1.AllowFullOpen = true;
// Выделять в диалоге заданный до выбора цвет
colorDialog1.Color = label1.ForeColor;
}
5. Пусть label1 – поле типа Label в центре нашей Form1,
а button2 – кнопка с надписью «Определить шрифт» (согласно
заданию), тогда:
а) после двойного щелчка по кнопке button2 создаем:
private void button2_Click(object sender, EventArgs e) {
fontDialog1.ShowColor = true;
if (fontDialog1.ShowDialog() != DialogResult.Cancel){
label1.Font = fontDialog1.Font;
label1.ForeColor = fontDialog1.Color;
button2.Font = fontDialog1.Font;
button2.ForeColor = fontDialog1.Color;
}
}
б) после двойного щелчка по пункту меню «Изменить цвет шрифта»:
private void toolStripMenuItem1_Click(object sender, EventArgs e){
// Update the text box color if the user clicks OK
if (colorDialog1.ShowDialog() == DialogResult.OK)
label1.ForeColor = colorDialog1.Color;
}
в) так обрабатывается пункт «Увеличить размер шрифта» и аналогичным
образом и следующий пункт контекстного меню:
private void toolStripMenuItem2_Click(object sender, EventArgs e){
Font font = new Font(
label1.Font.FontFamily,
label1.Font.Size+5,
label1.Font.Style,
label1.Font.Unit
);
label1.Font = font;
}
г) для обработки пункта «Изменить текст» (здесь Form2 –новая
форма для задания нового текста) (см. код ниже):
private Form2 frm2 = new Form2();
private void toolStripMenuItem4_Click(object sender, EventArgs e){
if (frm2.ShowDialog() != DialogResult.Cancel){
label1.Text = frm2.textBox1.Text;
}
}
д) всплывающая подсказка:
private void contextMenuStrip1_MouseLeave(object sender, EventArgs e){
toolTip1.SetToolTip(this.label1, "Используйте контекстное меню");
}
6. Код файла с Form2:
using System;
using System.Windows.Forms;
namespace FontChng {
public partial class Form2 : Form {
public Form2(){
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e){
DialogResult = DialogResult.Cancel;
}
private void button2_Click(object sender, EventArgs e){
DialogResult = DialogResult.OK;
}
}
}
Download