タイトル | : 全コントロール共通でイベント発生 |
記事No | : 4620 |
投稿日 | : 2006/12/04(Mon) 10:59 |
投稿者 | : フウセンウナギ |
XP SP2 VB2005 です。
フォームにテキストや日付コントロール、ボタンなどを用意します。 これらにはすべてTagプロパティにメッセージをセットしてあり、 EnterイベントでそのTag内容を特定のラベルに表示し、Leaveイベントでラベル内容 を消すようにしようと思います。
いろいろ調べてみて、コントロールがテキストだけならばEnterイベント1つで記述することが できたのですが、複数の種類のコントロールのイベントを1つにまとめる方法が分かりません。 以下はテキストをコントロール配列のようにするための記述です。
Private txt() As System.Windows.Forms.TextBox
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
'★コントロール配列の作成 Me.txt = New System.Windows.Forms.TextBox(2) {}
'★フォームのインスタンスを代入 Me.txt(0) = Me.txt0 Me.txt(1) = Me.txt1 Me.txt(2) = Me.txt2
'★イベントハンドラに関連付け For intI = 0 To 2 AddHandler Me.txt(intI).KeyPress, _ AddressOf Me.txt_KeyPress Next intI
End Sub
Private Sub txt_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Dim index As Integer
'★インデックスを取得 index = CInt(Replace(CType(sender, System.Windows.Forms.TextBox).Name, "txt", ""))
Select Case Index Case 0 Case 1 End Select End Sub
|