Несколько слов о терминологии. Когда мы говорим о меню, то имеем в виду некоторую структуру, организованную в виде дерева. Меню состоит из элементов меню, часто называемых
Кроме структуры, заданной главным меню, в форме и в элементах управления разрешается организовывать контекстные меню, появляющиеся (всплывающие) при нажатии правой кнопки мыши.
Создание меню в режиме проектирования
Для построения в режиме проектирования главного меню и связанной с ним структуры достаточно перетащить на форму элемент управления, называемый
После перетаскивания метка с изображением этого элемента управления появляется ниже формы, а на форме появляется элемент меню с информационным полем, в котором можно задать название пункта меню, и двумя указателями на правого брата и старшего сына, позволяющими перейти к следующему пункту меню того же уровня или опуститься на нижний уровень. Технология создания меню вручную интуитивно ясна и не вызывает обычно никаких проблем. На рис. 24.9 показан процесс создания меню.
Рис. 24.9.
Рассмотрим пример, в котором главное меню содержит 3 пункта —
Посадим на форму еще один элемент управления — текстовое окно — и свяжем с командами меню обработчики события
Связывание команды меню с обработчиком события в режиме проектирования выполняется стандартным образом — выделяется соответствующая команда меню, затем в окне
Вот как выглядят обработчики события
private void menuItem4_Click(object sender, System.EventArgs e)
{
OpenFileDialog openFileDialogl = new OpenFileDialog ();
openFileDialogl.ShowDialog();
//код, показывающий, что делать с открытым файлом
textBox1.Text = "Открытие Файла!";
}
private void menuItem10_Click(object sender, System.EventArgs e)
{
SaveFileDialog saveFileDialog1 = new SaveFileDialog ();
saveFileDialog1l.ShowDialog();
//код, анализирующий результат операции сохранения файла
textBox1.Text = "Сохранение Файла!";
}
private void menuItem3_Click(object sender, System.EventArgs e)
{
ColorDialog colorDialog1 = new ColorDialog ();
if (colorDialog1.ShowDialog()== DialogResult.OK)
this.textBox1.BackColor =colorDialog1.Color;
}