Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб2_Меню и панели управления.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆

2. Работа с панелями управления.

2.1. Панель управления с использованием компоненты Panel.

Панель с командными кнопками дополняет меню. Панель устроена проще, поскольку здесь нет иерархии. На панели располагаются кнопки, щелчок по каждой из которых запускает на выполнение соответствующую команду, заданную обработчиком события Click. Как правило, команды, задаваемые кнопками панелей, соответствуют наиболее часто используемым командам меню и являются альтернативным способом их запуска. Но это не обязательно, и команды, задаваемые кнопками панели, могут не пересекаться с командами меню. Роль контейнерного класса для командных кнопок может играть класс, определяющий панель – Panel. Командные кнопки – элементы, располагаемые на панели, задаются классом Button.

Давайте спроектируем панель с тремя кнопками, задающими команды Open, Save и Color, повторяющие команды меню. Принято кнопки делать красивыми, вынося на них рисунки, ассоциированные с командами. Поэтому поместим на форме два элемента управления – ImageList, хранящий рисунки, связываемые с кнопками, и Panel – панель, на которой будут располагаться кнопки. В коллекцию объекта imageList1 добавим три подходящие картинки, свяжем этот объект со свойством ImageList объекта Panel. Затем добавим три кнопки в коллекцию объекта Panel и зададим для них нужные свойства – текст, появляющийся на кнопке, подсказку к кнопке и индекс элемента из списка ImageList. На Рис.11 показан внешний вид панели управления с соответствующими клавишами.

Рис.11. Внешний вид панели с клавишами управления.

Вот как выглядят обработчики события Click команд Open(Открыть), Save(Сохранить) и Color(Цвет):

private void menuItem4_Click(object sender, System.EventArgs e)

{

OpenFileDialog openFileDialog1 = new OpenFileDialog();

openFileDialog1.ShowDialog();

//код, показывающий, что делать с открытым файлом

textBox1.Text = "Открытие Файла!";

}

private void menuItem5_Click(object sender, System.EventArgs e)

{

SaveFileDialog saveFileDialog1 = new SaveFileDialog();

saveFileDialog1.ShowDialog();

//код, анализирующий результат операции сохранения файла

textBox1.Text = "Сохранение Файла!";

}

private void menuItem6_Click(object sender, System.EventArgs e)

{

ColorDialog colorDialog1 = new ColorDialog();

if (colorDialog1.ShowDialog()== DialogResult.OK)

this.textBox1.BackColor =colorDialog1.Color;

}

На Рис.12 показано диалоговое окно для выбора цвета, открытое при выборе команды меню <Color>.

Рис.12. Диалоговое окно ColorDialog, позволяющее выбрать цвет.

Для полноты картины зададим обработчики событий для команд меню Circle, Rectangle, Line, не выполняющие пока содержательной работы, а лишь информирующие о намерениях:

private void menuItem7_Click(object sender, System.EventArgs e)

{

textBox1.Text = "Рисование круга!";

}

private void menuItem8_Click(object sender, System.EventArgs e)

{

textBox1.Text = "Рисование прямоугольника!";

}

private void menuItem9_Click(object sender, System.EventArgs e)

{

textBox1.Text = "Рисование прямой!";

}