イベント 基本のき VB2005
イベント 基本のき VB2005
VB.NETのイベントは、引数を2つ持つ。
- 一つ目の、 [sender]はイベント発生源のコントロールへの参照。
型変換してコントロールの情報などが取得できる。
- 二つ目の、[e]は、「イベント データが格納されているクラスの基本クラスです。by MSDN」
サンプルでは、テキストボックスで1つ目の例。
フォームのマウスクリックで2つ目の例。
となっている。
コントロール配列みたいな・・・・
VB6のコントロール配列が無くなった代わりに、VB.NETではイベントハンドルの後にイベントを追加できる。
Handles TextBox1.TextChanged, TextBox2.TextChanged
Public Class Form1
'Handles TextBox1.TextChanged, TextBox2.TextChangedとすることによって
'VB6のコントロール配列のようにコードを書くことができる。
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged, TextBox2.TextChanged
'[sender]はイベント発生源のコントロールへの参照
Me.Label1.Text = CType(sender, TextBox).Text
Me.Label1.Text = Me.Label1.Text & vbCrLf & CType(sender, TextBox).Name 'コントロール名を取得
End Sub
Private Sub Form1_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseClick
'[e]は、「イベント データが格納されているクラスの基本クラスです。by MSDN」
'この場合だと、マウスのどのボタンが押されたかが取得できる。
Me.Label1.Text = e.Button.ToString
'マウスのロケーション
Me.Label1.Text = Me.Label1.Text & vbCrLf & "X:" & e.X.ToString()
Me.Label1.Text = Me.Label1.Text & vbCrLf & "Y:" & e.Y.ToString()
If (Control.ModifierKeys And Keys.Control) = Keys.Control Then
Me.Label1.Text = Me.Label1.Text & vbCrLf & "Ctrl 修飾子キー "
End If
If (Control.ModifierKeys And Keys.Control) And (Control.ModifierKeys And Keys.Shift) = Keys.Shift Then
Me.Label1.Text = Me.Label1.Text & vbCrLf & "Ctrl+Shift 修飾子キー "
End If
End Sub
End Class
|
|