Взаимодействие с пользователем
Изменением свойств, вызовом методов, выполнением обработчиков событий.
Два способа обработки события:
1. Замещение защищенного метода, вызывающего соответствующее событие (OnClick --> Click).
2. Подключение собственного обработчика, тело которого генерирует Дизайнер VS.
рис.4
События ЭУ
Наиболее часто используемые события ЭУ:
• Click
• DoubleClick
• Validating
• Enter
• Leave
• Paint
Enter, Leave – получить фокус элементом управления, потерять фокус (параметр EventArgs е).
Validating – проверить правильность данных (параметр CancelEventArgs е).
private void button1_Click (object sender, EventArgs e) { . . . }
sender – ссылка на ЭУ, сгенерировавший событие.
sender.Name – имя (идентификатор) ЭУ;
sender.Text – текст в ЭУ.
e – параметры сообщения.
Как установить фокус ввода: ЭУ.Focus()
Возвращаемое значение: значение true, если запрос фокуса ввода был успешным; в противном случае — false.
Примечания
Метод Focus возвращает значение true, если элемент управления успешно получил фокус ввода. Ели элемент управления имеет фокус ввода, не всегда имеются внешние признаки, указывающие на это. Такое поведение характерно в первую очередь для невыделяемых элементов управления, перечисленных ниже, а также для любых производных от них элементов управления.
Элемент управления может быть выделен и получить фокус ввода, если всем нижеследующим утверждениям соответствует значение true: бит стиля ControlStyles.Selectable задан как true; элемент управления содержится в другом элементе управления, и все его родительские элементы видимы и включены.
Список элементов управления форм Windows Forms, которые также являются невыделяемыми. Элементы управления, производные от этих элементов, также не выделяются.
• Panel
• GroupBox
• PictureBox
• ProgressBar
• Splitter
• Label
• LinkLabel (если ссылка в элементе управления отсутствует)
Пример
В следующем примере фокус передается указанному Control при условии, что он имеет возможность получать фокус.
public void ControlSetFocus(Control control)
{
// Set focus to the control, if it can receive focus.
if(control.CanFocus)
{
control.Focus();
}
}
События клавиатуры
KeyDown – при нажатии
KeyUP – при отпускании
void Form1_KeyUp(object sender, KeyEventArgs e)
Свойства класса KeyEventArgs:
Alt, Control, Shift = true – нажата, false – не нажата.
KeyCode – код нажатой клавиши
KeyData – совокупность кодов нажатых клавиш
KeyPress – удержание, посылается серия событий
void Form1_KeyPress(object sender, KeyPressEventArgs e)
События мыши
MouseClick – щелчок
MouseDoubleClick (посылается и MouseClick)
MouseDown – нажатие
MouseUp – отпускание
MouseEnter – курсор находится на ЭУ
MouseHover – курсор мыши наведен на элемент управления
MouseLeave – курсор покидает ЭУ
MouseMove – перемещение курсора
MouseWheel – колесико
private void Form1_MouseDown(object sender, MouseEventArgs e)
Открытые свойства MouseEventArgs
Button | Возвращает значение перечисления MouseButtons -сведения о том, какая кнопка мыши была нажата. |
Clicks | Возвращает число нажатий и отпусканий кнопки мыши. |
Delta | Возвращает счетчик со знаком для количества щелчков вращающегося колесика мыши. Щелчок — это один зубчик колесика мыши. |
X | Возвращает x-координату мыши. |
Y | Возвращает y-координату мыши. |
Начиная с Windows 2000, корпорация Майкрософт вводит поддержку пятикнопочной мыши Microsoft IntelliMouse Explorer.
Две новые кнопки мыши (XBUTTON1 и XBUTTON2) обеспечивают перемещение вперед-назад.
Перечисление MouseButtons
Имя члена | Описание | Значение |
Left | Была нажата левая кнопка мыши. | |
Middle | Была нажата средняя кнопка мыши. | |
None | Никакая кнопка мыши не была нажата. | |
Right | Была нажата правая кнопка мыши. | |
XButton1 | Была нажата первая кнопка XButton. | |
XButton2 | Была нажата вторая кнопка XButton. |
Пример.
switch (e.Button)
{
case MouseButtons.Left:
eventString = "L";
x1 = e.X;
y1 = e.Y;
break;
case MouseButtons.Right:
eventString = "R";
break;
}
Событие Paint
private void Form1_Paint (object sender, Forms.PaintEventArgs e)
Graphics g = e.Graphics;
Дата добавления: 2019-02-08; просмотров: 742;