Vb.net-event-handling

提供:Dev Guides
移動先:案内検索

VB.Net-イベント処理

イベントは基本的に、キーを押す、クリックする、マウスを動かすなどのユーザーアクション、またはシステムが生成する通知のようなイベントです。 アプリケーションは、発生したイベントに応答する必要があります。

ボタンをクリックするか、テキストボックスにテキストを入力するか、メニュー項目をクリックすると、すべてがイベントの例になります。 イベントは、関数を呼び出すアクション、または別のイベントを引き起こす可能性のあるアクションです。 イベントハンドラは、イベントへの応答方法を伝える関数です。

VB.Netはイベント駆動型言語です。 主に2種類のイベントがあります-

  • マウスイベント
  • キーボードイベント

マウスイベントの処理

マウスイベントは、フォームおよびコントロールでのマウスの動きで発生します。 以下は、コントロールクラスに関連するさまざまなマウスイベントです-

  • MouseDown -マウスボタンが押されたときに発生します
  • MouseEnter -マウスポインターがコントロールに入ると発生します
  • MouseHover -マウスポインターがコントロール上を移動したときに発生します
  • MouseLeave -マウスポインターがコントロールを離れると発生します
  • MouseMove -マウスポインターがコントロール上を移動すると発生します
  • MouseUp -マウスポインターがコントロール上にあり、マウスボタンを離したときに発生します
  • MouseWheel -マウスホイールが移動し、コントロールにフォーカスがあるときに発生します

マウスイベントのイベントハンドラーは、 MouseEventArgs 型の引数を取得します。 MouseEventArgsオブジェクトは、マウスイベントの処理に使用されます。 次のプロパティがあります-

  • ボタン-マウスボタンが押されたことを示します
  • クリック-クリック数を示します
  • Delta -マウスホイールが回転した戻り止めの数を示します
  • X -マウスクリックのx座標を示します
  • Y -マウスクリックのy座標を示します

以下は、マウスイベントを処理する方法を示す例です。 次の手順を実行します-

  • フォームに3つのラベル、3つのテキストボックス、およびボタンコントロールを追加します。
  • ラベルのテキストプロパティを、それぞれ顧客ID、名前、住所に変更します。
  • テキストボックスの名前プロパティをそれぞれ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ツールバーで使用可能な Start ボタンを使用して実行されると、次のウィンドウが表示されます-

イベント処理の例1

テキストボックスにテキストを入力して、マウスイベントを確認してください-

イベント処理結果フォーム

キーボードイベントの処理

以下は、コントロールクラスに関連するさまざまなキーボードイベントです-

  • KeyDown -キーが押され、コントロールにフォーカスがあるときに発生します
  • KeyPress -キーが押され、コントロールにフォーカスがあるときに発生します
  • KeyUp -コントロールにフォーカスがあるときにキーが離されると発生します

KeyDownイベントとKeyUpイベントのイベントハンドラーは、 KeyEventArgs 型の引数を取得します。 このオブジェクトには、次のプロパティがあります-

  • Alt -ALTキーが押されているかどうかを示します
  • Control -CTRLキーが押されているかどうかを示します
  • Handled -イベントが処理されたかどうかを示します
  • KeyCode -イベントのキーボードコードを保存します
  • KeyData -イベントのキーボードデータを保存します
  • KeyValue -イベントのキーボード値を保存します
  • 修飾子-どの修飾子キー(Ctrl、Shift、および/またはAlt)が押されているかを示します
  • Shift -Shiftキーが押されているかどうかを示します

KeyDownイベントとKeyUpイベントのイベントハンドラーは、 KeyEventArgs 型の引数を取得します。 このオブジェクトには、次のプロパティがあります-

  • Handled -KeyPressイベントが処理されるかどうかを示します
  • KeyChar -押されたキーに対応する文字を保存します

前の例を続けて、キーボードイベントを処理する方法を示します。 このコードは、ユーザーが顧客IDと年齢の数値を入力したことを確認します。

  • テキストプロパティが 'Age’のラベルを追加し、txtAgeという名前の対応するテキストボックスを追加します。
  • テキストボックスtxtIDのKeyUPイベントを処理するために、次のコードを追加します。
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
  • テキストボックスtxtIDのKeyUPイベントを処理するために、次のコードを追加します。
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ツールバーで使用可能な Start ボタンを使用して実行されると、次のウィンドウが表示されます-

VB.Netイベントの例

年齢やIDのテキストを空白のままにするか、数値以外のデータを入力すると、警告メッセージボックスが表示され、それぞれのテキストがクリアされます-

VB.Netイベントの例