Читать «ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание» онлайн - страница 466

Эндрю Троелсен

• Изменить стыковочное поведение MenuStrip.

• Отредактировать любой элемент MenuStrip (это просто "быстрая альтернатива" в отношении возможности выбора соответствующего конкретного элемента в окне свойств).

В этом примере мы проигнорируем возможности "встроенного" редактора, сосредоточившись на создании системы меню "вручную". Сначала в режиме проектирования выберите элемент управления MenuStrip и определите стандартное меню Файл→Выход, впечатав соответствующие имена в поле с подсказкой Type Here (Печатать здесь), рис. 19.12.

Рис. 19.12. Создание системы меню

Замечание. Вы, наверное, знаете, что символ амперсанда (&), размещенный перед буквой в строке элемента меню, задает комбинацию клавиш для быстрого вызова данного элемента. В этом примере указано &Файл→В&ыход, поэтому пользователь может активизировать меню Выход, нажав сначала ‹Alt+ф›, а затем ‹ы›.

Каждый элемент меню, введенный вами в режиме проектирования, представляется типом класса ToolStripMenuItem. Открыв свой файл *.Designer.cs, вы увидите там новые переменные для каждого из введенных элементов.

partial class MainWindow {

 private System.Windows.Forms.MenuStrip mainMenuStrip;

 private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem;

 private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem;

}

При использовании редактора меню метод InitializeComponent() соответственно обновляется. Для MenuStrip во внутреннюю коллекцию ToolStripItemCollection добавляется элемент, соответствующий новому пункту меню высшего уровня (fileToolStripMenuItem). Точно так же обновляется переменная fileToolStripMenuItem, для которой в ее коллекцию ToolStripItemCollection вставляется переменная exitToolStripMenuItem с помощью свойства DropDownItems.

private void InitializeComponent() {

 …

 //

 // menuStrip1

 //

 this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.fileToolStripMenuItem });

 …

 //

 // fileToolStripMenuItem

 //

 this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.exitToolStripMenuItem });

 …

 //

 // MainWindow

 //

 this.Controls.Add(this.menuStrip1);

}

Наконец (что не менее важно), элемент управления MenuStrip добавляется в коллекцию элементов управления формы. Эта коллекции будет рассматриваться подробно в главе 21, а здесь важно отметить, чего элемент управления может быть видимым во время выполнения только в том случае, когда этот элемент присутствует в указанной коллекции.

Чтобы завершить создание программного кода нашего примера, вернитесь в режим проектирования и выполните обработку события Сlick для пункта меню Выход, используя кнопку событий в окне свойств. В сгенерированном обработчике событии выполните вызов ApplicationExit.

private void exitToolStripMenuItem_Click(object sender, EventArgs e) {

 Application.Exit();

}

Теперь вы можете скомпилировать и выполнить свою программу. Проверьте, что вы можете завершить работу приложения как с помощью выбора Файл→Выход из меню, так и с помощью нажатия ‹Аlt+ф›, а затем ‹ы› на клавиатуре.