Учебники

VB.Net — Обработка событий

События в основном представляют собой действия пользователя, такие как нажатие клавиш, щелчки, движения мыши и т. Д., Или некоторые события, такие как системные уведомления. Приложения должны реагировать на события, когда они происходят.

Нажатие на кнопку, или ввод текста в текстовое поле, или нажатие на элемент меню — все это примеры событий. Событие — это действие, которое вызывает функцию или может вызвать другое событие. Обработчики событий — это функции, которые сообщают, как реагировать на событие.

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, появится следующее окно:

Пример обработки событий1

Попробуйте ввести текст в текстовые поля и проверить события мыши —

Форма результата обработки события

Обработка событий клавиатуры

Ниже приведены различные события клавиатуры, связанные с классом 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, появится следующее окно:

Пример события VB.Net

Если вы оставите текст для возраста или идентификатора пустым или введете нечисловые данные, появится окно с предупреждением и очистится соответствующий текст: