Обратите внимание на то, что в окне свойств есть кнопка с изображением молнии. Вы, конечно, можете вручную создать программный код, обеспечивающий обработку событий уровня формы, (как это было сделано в предыдущих примерах), но эта кнопка позволяет обработать событие для данного элемента управления "визуально". Из раскрывающегося списка (вверху окна свойств) выберите элемент управления, который должен взаимoдeйствoвaть с формой, найдите событие, которое вы хотите обработать, и напечатайте имя, которое должно использоваться для обработчика события (или выполните двойной щелчок на имени события, чтобы сгенерировать типовое имя в виде ИмяЭлемента_ИмяСобытия).
Если задать обработку события Click для элемента управления Button, в файле Form1.cs появится следующий обработчик событий.
public partial class MainWindow: Form {
public MainWindow {
InitializeComponent;
}
private void btnButtonTest_Click(object sender, EventArgs e) {}
}
Файл Form1.Designer.cs будет содержать необходимую инфраструктуру и описание соответствующего члена-переменной.
partial class MainWindow {
…
private void InitializeComponent {
…
this.btnButtonTest.Click += new System.EventHandler(this.btnButtonTest_Click);
}
private System.Windows.Forms.Button btnButtonTest;
}
Замечание. Каждый элемент управлении имеет свое
Класс Program
Кроме файлов, связанных с формой, Windows-приложение Visual Studio 2005 определяет еще один класс, представляющий объект приложения (т.е. тип, определяющий метод Main). Обратите внимание на то, что в следующем методе Main вызывается Application.EnableVisualStyles, а также Application.Run.
static class Program {
[STAThread]
static void Main {
Application.EnableVisualStyles;
Application.Run(new MainWindow);
}
}
Замечание. Атрибут [STAThread] дает среде CLR указание обрабатывать все устаревшие COM-объекты (включая элементы управления ActiveX), используя STA-управление (SingleThreaded Apartment – однопоточное размещение). Если вы имеете опыт использования COM, вы должны знать, что STA-управление используется для того, чтобы доступ к COM-типу выполнялся в синхронном (а значит, безопасном в отношении потоков) режиме.
Необходимые компоновочные блоки
Наконец, если Заглянуть в окно Solution Explorer, вы увидите, что проект Windows Forms автоматически ссылается на целый ряд компоновочных блоков, среди которых будут System.Windows.Forms.dll и System.Drawing.dll.
Напомним, что подробное обсуждение System.Drawing.dll предполагается в следующей главе.
Работа с MenuStrip и ContextMenuStrip
В рамках платформы .NET 2.0 рекомендуемым элементом управления для создания системы меню является MenuStrip. Этот элемент управления позволяет создавать как "обычные" пункты меню, такие как Файл->Выход, так и пункты меню, представляющие собой любые подходящие элементы управления. Вот некоторые общие элементы интерфейса, которые могут содержаться в MenuStrip.
• ToolStripMenuItem – традиционный пункт меню.
• ToolStripComboBox – встроенный элемент ComboBox (комбинированное окно).
• ToolStripSeparator – простая линия, разделяющая содержимое.
• ToolStripTextBox – встроенный элемент TextBox (текстовое окно).
С точки зрения программиста, элемент управления MenuStrip содержит строго типизированную коллекцию ToolStripItemCollection. Подобно другим типам коллекции, этот объект поддерживает методы Add, AddRange, Remove и свойство Count. Эта коллекция обычно заполняется не напрямую, а с помощью различных инструментов режима проектирования, но если требуется, то есть возможность обработать ее и вручную.
Чтобы привести пример использования элемента управления MenuStrip, создайте новое приложение Windows Forms с именем MenuStripApp. Поместите элемент управления MenuStrip в форму в окне проектирования, присвоив ему имя mainMenuStrip. В результате в файл *.Designer.cs добавится новая переменная.
private System.Windows.Forms.MenuStrip mainMenuStrip;