タイトル : 全コントロール共通でイベント発生 投稿日 : 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 |