Vb.net-event-handling
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 ボタンを使用して実行されると、次のウィンドウが表示されます-
テキストボックスにテキストを入力して、マウスイベントを確認してください-
キーボードイベントの処理
以下は、コントロールクラスに関連するさまざまなキーボードイベントです-
- 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 ボタンを使用して実行されると、次のウィンドウが表示されます-
年齢やIDのテキストを空白のままにするか、数値以外のデータを入力すると、警告メッセージボックスが表示され、それぞれのテキストがクリアされます-