Взаимодействие с пользователем


Изменением свойств, вызовом методов, выполнением обработчиков событий.

 

Два способа обработки события:

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;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.018 сек.