Меню — это наиболее часто используемый атрибут оконного приложения. Через пункты меню можно выполнять все действия, допустимые в программе.
Для создания меню используется компонент MenuStrip.
Пример 1. Создадим меню с одним работающим пунктом Выход. Предусмотрим возможность для пользователя отказаться от завершения программы.
Возможная реализация:
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
namespace PrimMenu
{
public partial class MainForm: Form
{
public MainForm()
{
InitializeComponent();
}
void ExitToolStripMenuItemClick(object sender, EventArgs e)
{
Close();
}
void MainFormFormClosing(object sender, FormClosingEventArgs e)
{
if(MessageBox.Show("Вы уверены, что хотите завершить работу программы?","Выход", MessageBoxButtons.YesNo)!= DialogResult.Yes)
e.Cancel = true;
else
e.Cancel = false;
}
}
}
Пояснения к тексту программы.
При нажатии на клавишу Выход срабатывает обработчик событий ExitToolStripMenuItemClick(), который содержит всего один оператор
Close();
предназначенный для закрытия основной формы и завершения работы приложения. Но не всё так просто. Когда пользователь решает закрыть форму, то одно за другим возникают два события:
Closing — пользователь нажал кнопку закрыть, но пока окно не разрушено, и есть возможность отменить решение, т.е. продолжить работу с программой.
Closed — окно уже разрушено.
Можно воспользоваться этим фактом и написать свой обработчик для события Closing (для нашей главной формы обработчик получит название MainFormFormClosing()), в котором выполняются какие-то действия, например, можно задать вопрос типа: «Вы уверены, что хотите завершить работу программы?». Если ответить «Да», то программа завершает работу, если «Нет», то работа приложения продолжается.
Второй параметр в обработчике событий e имеет свойство Cancel. Если оно имеет значение true, то работа продолжается (Cancel означает отмену действия, т.е не закрывать окно), если false — генерируется событие Closed и программа завершает работу.
|
|
|