…
// Для обработки события MouseUp.
MouseUp += new MouseHandler(MainForm_MouseUp);
}
Следующий обработчик события MouseUp сообщает в окне сообщения о том, какой кнопкой мыши был выполнен щелчок.
public void MainForm_MouseUp(object sender, MouseEventArgs e) {
// Какая кнопка мыши была нажата?
if (e.Button == MouseButtons. Left)MessageBox.Show("Щелчок левой кнопки");
if (e.Button == MouseButtons. Right)MessageBox.Show("Щелчок правой кнопки");
if (e.Button == MouseButtons. Middle)MessageBox.Show("Щелчок средней кнопки");
}
Ответ на события клавиатуры
Обработка ввода с клавиатуры почти идентична обработке событий мыши. cобытия KeyUp и KeyDown работают в паре с делегатом KeyEventHandler, который может указывать на любой метод, получающий объект общего вида в качестве первого параметра, и KeyEventArgs – в качестве второго.
void MyKeyboardHandler(object sender, KeyEventArgs e);
Описания членов KeyEventArgs предлагаются в табл. 19.7.
Таблица 19.7.Свойства типа KeyEventArgs
Свойство |
Описание |
Alt |
Содержит значение, являющееся индикатором нажатия клавиши ‹Alt› |
Control |
Содержит значение, являющееся индикатором нажатия клавиши ‹Ctrl› |
Handled |
Читает или устанавливает значение, являющееся индикатором полного завершения обработки события обработчиком |
KeyCode |
Возвращает клавишный код для события KeyDown или события KeyUp |
Modifiers |
Указывает, какие модифицирующие клавиши были нажаты (‹Ctrl›, ‹Shift› и/или ‹Alt›) |
Shift |
Содержит значение, являющееся индикатором нажатия клавиши ‹Shift› |
Измените объект MainForm, чтобы реализовать обработку события KeyUp. В окне сообщения отобразите название нажатой клавиши, используя свойство KeyCode.
public class MainForm: Form {
public MainForm() {
…
// Для отслеживания событий KeyUp.
KeyUp += new KeyEventHandler(MainForm_KeyUp);
}
private void MainForm_KeyUp (object sender, KeyEventArgs e) {
MessageBox.Show(e. KeyCode.ToString(), "Нажата клавиша!");
}
}
Скомпилируйте и запустите программу. Теперь вы должны иметь возможность не только определить, какой кнопкой мыши был выполнен щелчок, но и то, какая была нажата клавиша на клавиатуре.
На этом мы завершим обсуждение функциональных возможностей базового класса Control и перейдем к обсуждению роли Form.
Исходный код.Проект ControlBehaviors размещен в подкаталоге, соответствующем главе 19.
Функциональные возможности класса Form
Класс Form обычно (но не обязательно) является непосредственным базовым классом для пользовательских типов Form. В дополнение к большому набору членов, унаследованных от классов Control, ScrollableControl и ContainerControl, тип Form предлагает свои собственные функциональные возможности, в частности для главных окон, дочерних окон MDI и диалоговых окон. Давайте сначала рассмотрим базовые свойства, представленные в табл. 19.8.
Таблица 19.8.Свойства типа Form
Свойства |
Описание |
AcceptButton |
Читает или устанавливает информацию о кнопке, которая будет "нажата" (в форме), когда пользователь нажмет клавишу ‹Enter› |
ActiveMDIChild IsMDIChild IsMDIContainer |
Используются в контексте МDI-приложения |
CancelButton |
Читает или устанавливает информацию о кнопочном элементе управления, который будет "нажат", когда пользователь нажмет клавишу ‹Esc› |
ControlBox |
Читает или устанавливает значение, являющееся индикатором наличия у формы экранной кнопки управления окном |
FormBorderStyle |
Читает или устанавливает значение, задающее стиль границы формы (в соответствии с перечнем FormBorderStyle) |
Menu |
Читает или устанавливает информацию о стыковке меню в форме |
MaximizeBox MinimizeBox |
Используются для информации о наличии у формы кнопок минимизации и максимизации окна |
ShowInTaskbar |
Указывает, будет ли форма видимой в панели задач Windows |
StartPosition |
Читает или устанавливает значение, задающее начальную позицию окна формы (в соответствии с перечнем FormStartPosition) |
WindowState |
Указывает (в соответствии с перечнем FormWindowState), в каком виде должна отображаться форма при запуске |
В дополнение к ожидаемым обработчикам событий с префиксом On, предлагаемым по умолчанию, в табл. 19.9 предлагается список некоторых базовых методов, определенных типом Form.
Таблица 19.9.Основные методы типа Form
Метод |
Описание |
Activate() |
Активизирует форму и предоставляет ей фокус ввода |
Close() |
Закрывает форму |
CenterToScreen() |
Размещает форму в центре экрана |
LayoutMDI |
Размещает все дочерние формы (в соответствии с перечнем LayoutMDI) в рамках родительской формы |
ShowDialog() |
Отображает форму в виде модального диалогового окна. Более подробно о программировании диалоговых окон говорится в главе 21 |
Наконец, класс Form определяет ряд событий, связанных с циклом существования формы. Основные такие события описаны в табл. 19.10.
Читать дальше