События в основном представляют собой действия пользователя, такие как нажатие клавиш, щелчки, движения мыши и т. Д., Или некоторые события, такие как системные уведомления. Приложения должны реагировать на события, когда они происходят.
Нажатие на кнопку, или ввод текста в текстовое поле, или нажатие на элемент меню — все это примеры событий. Событие — это действие, которое вызывает функцию или может вызвать другое событие. Обработчики событий — это функции, которые сообщают, как реагировать на событие.
VB.Net — это язык событий. Есть в основном два типа событий —
-
События мыши
-
События клавиатуры
События мыши
События клавиатуры
Обработка событий мыши
События мыши происходят с движениями мыши в формах и элементах управления. Ниже приведены различные события мыши, связанные с классом Control —
-
MouseDown — происходит при нажатии кнопки мыши
-
MouseEnter — происходит, когда указатель мыши входит в элемент управления
-
MouseHover — происходит, когда указатель мыши находится над элементом управления
-
MouseLeave — происходит, когда указатель мыши покидает элемент управления
-
MouseMove — происходит, когда указатель мыши перемещается над элементом управления
-
MouseUp — происходит, когда указатель мыши находится над элементом управления и кнопка мыши отпущена.
-
MouseWheel — происходит, когда колесо мыши перемещается и элемент управления имеет фокус
MouseDown — происходит при нажатии кнопки мыши
MouseEnter — происходит, когда указатель мыши входит в элемент управления
MouseHover — происходит, когда указатель мыши находится над элементом управления
MouseLeave — происходит, когда указатель мыши покидает элемент управления
MouseMove — происходит, когда указатель мыши перемещается над элементом управления
MouseUp — происходит, когда указатель мыши находится над элементом управления и кнопка мыши отпущена.
MouseWheel — происходит, когда колесо мыши перемещается и элемент управления имеет фокус
Обработчики событий событий мыши получают аргумент типа MouseEventArgs . Объект MouseEventArgs используется для обработки событий мыши. Он имеет следующие свойства —
-
Кнопки — указывает на нажатие кнопки мыши
-
Клики — указывает количество кликов
-
Дельта — указывает количество стопоров, которые поворачивало колесо мыши
-
X — указывает x-координату щелчка мышью
-
Y — указывает y-координату щелчка мышью
Кнопки — указывает на нажатие кнопки мыши
Клики — указывает количество кликов
Дельта — указывает количество стопоров, которые поворачивало колесо мыши
X — указывает x-координату щелчка мышью
Y — указывает y-координату щелчка мышью
пример
Ниже приведен пример, который показывает, как обрабатывать события мыши. Сделайте следующие шаги —
-
Добавьте три метки, три текстовых поля и кнопку управления в форме.
-
Измените свойства текста меток на — Идентификатор клиента, Имя и Адрес соответственно.
-
Измените свойства имени текстовых полей на txtID, txtName и txtAddress, соответственно.
-
Измените текстовое свойство кнопки на «Отправить».
-
Добавьте следующий код в окне редактора кода —
Добавьте три метки, три текстовых поля и кнопку управления в форме.
Измените свойства текста меток на — Идентификатор клиента, Имя и Адрес соответственно.
Измените свойства имени текстовых полей на txtID, txtName и txtAddress, соответственно.
Измените текстовое свойство кнопки на «Отправить».
Добавьте следующий код в окне редактора кода —
Public Class Form1 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load ' Set the caption bar text of the form. Me.Text = "tutorialspont.com" End Sub Private Sub txtID_MouseEnter(sender As Object, e As EventArgs)_ Handles txtID.MouseEnter 'code for handling mouse enter on ID textbox txtID.BackColor = Color.CornflowerBlue txtID.ForeColor = Color.White End Sub Private Sub txtID_MouseLeave(sender As Object, e As EventArgs) _ Handles txtID.MouseLeave 'code for handling mouse leave on ID textbox txtID.BackColor = Color.White txtID.ForeColor = Color.Blue End Sub Private Sub txtName_MouseEnter(sender As Object, e As EventArgs) _ Handles txtName.MouseEnter 'code for handling mouse enter on Name textbox txtName.BackColor = Color.CornflowerBlue txtName.ForeColor = Color.White End Sub Private Sub txtName_MouseLeave(sender As Object, e As EventArgs) _ Handles txtName.MouseLeave 'code for handling mouse leave on Name textbox txtName.BackColor = Color.White txtName.ForeColor = Color.Blue End Sub Private Sub txtAddress_MouseEnter(sender As Object, e As EventArgs) _ Handles txtAddress.MouseEnter 'code for handling mouse enter on Address textbox txtAddress.BackColor = Color.CornflowerBlue txtAddress.ForeColor = Color.White End Sub Private Sub txtAddress_MouseLeave(sender As Object, e As EventArgs) _ Handles txtAddress.MouseLeave 'code for handling mouse leave on Address textbox txtAddress.BackColor = Color.White txtAddress.ForeColor = Color.Blue End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) _ Handles Button1.Click MsgBox("Thank you " & txtName.Text & ", for your kind cooperation") End Sub End Class
Когда приведенный выше код будет выполнен и запущен с использованием кнопки « Пуск» , доступной на панели инструментов Microsoft Visual Studio, появится следующее окно:
Попробуйте ввести текст в текстовые поля и проверить события мыши —
Обработка событий клавиатуры
Ниже приведены различные события клавиатуры, связанные с классом Control —
-
KeyDown — происходит, когда клавиша нажата и элемент управления имеет фокус
-
KeyPress — происходит, когда клавиша нажата и элемент управления имеет фокус
-
KeyUp — происходит, когда клавиша отпущена, когда элемент управления имеет фокус
KeyDown — происходит, когда клавиша нажата и элемент управления имеет фокус
KeyPress — происходит, когда клавиша нажата и элемент управления имеет фокус
KeyUp — происходит, когда клавиша отпущена, когда элемент управления имеет фокус
Обработчики событий KeyDown и KeyUp получают аргумент типа KeyEventArgs . Этот объект имеет следующие свойства —
-
Alt — указывает, нажата ли клавиша ALT
-
Управление — указывает, нажата ли клавиша CTRL
-
Обработано — указывает, обработано ли событие
-
KeyCode — хранит код клавиатуры для события
-
KeyData — хранит данные клавиатуры для события
-
KeyValue — сохраняет значение клавиатуры для события
-
Модификаторы — указывает, какие клавиши-модификаторы (Ctrl, Shift и / или Alt) были нажаты
-
Shift — указывает, нажата ли клавиша Shift
Alt — указывает, нажата ли клавиша ALT
Управление — указывает, нажата ли клавиша CTRL
Обработано — указывает, обработано ли событие
KeyCode — хранит код клавиатуры для события
KeyData — хранит данные клавиатуры для события
KeyValue — сохраняет значение клавиатуры для события
Модификаторы — указывает, какие клавиши-модификаторы (Ctrl, Shift и / или Alt) были нажаты
Shift — указывает, нажата ли клавиша Shift
Обработчики событий KeyDown и KeyUp получают аргумент типа KeyEventArgs . Этот объект имеет следующие свойства —
-
Обработано — указывает, обрабатывается ли событие KeyPress.
-
KeyChar — сохраняет символ, соответствующий нажатой клавише
Обработано — указывает, обрабатывается ли событие KeyPress.
KeyChar — сохраняет символ, соответствующий нажатой клавише
пример
Давайте продолжим с предыдущим примером, чтобы показать, как обрабатывать события клавиатуры. Код будет проверять, что пользователь вводит некоторые цифры для своего идентификатора клиента и возраста.
-
Добавьте метку с текстом Property как «Age» и добавьте соответствующее текстовое поле с именем txtAge.
-
Добавьте следующие коды для обработки событий KeyUP текстового поля txtID.
Добавьте метку с текстом Property как «Age» и добавьте соответствующее текстовое поле с именем txtAge.
Добавьте следующие коды для обработки событий KeyUP текстового поля txtID.
Private Sub txtID_KeyUP(sender As Object, e As KeyEventArgs) _ Handles txtID.KeyUp If (Not Char.IsNumber(ChrW(e.KeyCode))) Then MessageBox.Show("Enter numbers for your Customer ID") txtID.Text = " " End If End Sub
-
Добавьте следующие коды для обработки событий KeyUP текстового поля txtID.
Добавьте следующие коды для обработки событий KeyUP текстового поля txtID.
Private Sub txtAge_KeyUP(sender As Object, e As KeyEventArgs) _ Handles txtAge.KeyUp If (Not Char.IsNumber(ChrW(e.keyCode))) Then MessageBox.Show("Enter numbers for age") txtAge.Text = " " End If End Sub
Когда приведенный выше код будет выполнен и запущен с использованием кнопки « Пуск» , доступной на панели инструментов Microsoft Visual Studio, появится следующее окно:
Если вы оставите текст для возраста или идентификатора пустым или введете нечисловые данные, появится окно с предупреждением и очистится соответствующий текст: