tagCANDY CGI VBレスキュー(花ちゃん) - VBレスキュー(花ちゃん)の投稿サンプル用掲示板 - Visual Basic 6.0 VB2005 VB2010
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ
VBレスキュー(花ちゃん)の投稿サンプル用掲示板
     サンプル投稿用掲示板  VB2005 〜 用トップページ  VB6.0 用 トップページ
全てのコントロールのクリックイベントを一括処理(VB.NET)_1 ( No.1 )  [親スレッドへ]
日時: 2009/12/28 10:03
名前: 花ちゃん

***********************************************************************************
* カテゴリー:[イベント][コントロール共通][マウス]                           *
* キーワード:イベント,1箇所,まとめる,一括,共有,クリックイベント                  *
***********************************************************************************
タイトル :全てのコントロールのクリックイベントを一括処理
SampleNo :249  
投 稿 日 :2009/12/27
投 稿 者 :花ちゃん
-----------------------------------------------------------------------------------
全てのコントロールのイベントを1つのイベントで管理(VB.NET)
http://hanatyan.sakura.ne.jp/patio/read.cgi?mode=view2&f=159&no=0
上記だけでは解りづらいかと思い動作確認用のサンプルをアップしておきます。

------------------------------------------------------------------------------------
使用するコントロールは、下図を参照に適当に配置して下さい。
動作確認:WindowsVista/WindowsXP/VB2005(EE)/VB2008(EE)
[Option Compare Text] [Option Explicit On] [Option Infer On] [Option Strict On]で設定
サンプル実行図
http://www.hanatyan.sakura.ne.jp/bbs_gif/159-1-1.gif

'========1=========2=========3=========4=========5=========6=========7=========8=========9
Public Class Form1

Private Sub SetAll_Click(ByVal ctrl As Control)
   If ctrl.HasChildren Then
      For Each cCtrl As Control In ctrl.Controls
         SetAll_Click(cCtrl)              '再帰的に繰り返す
         '特定のコントロールだけ処理する場合
         'If TypeOf cCtrl Is Button Then
            'AddHandler ステートメントで、イベントをイベント ハンドラに関連付け
            AddHandler cCtrl.Click, AddressOf AllControl_Click
         'End If
      Next cCtrl
   End If
End Sub

Sub AllControl_Click(ByVal sender As Object, ByVal e As System.EventArgs)
'全てのコントロールのクリックイベントを処理
   Select Case CType(sender, Control).Name
      Case "Button1"
         Debug.WriteLine("Button1 がクリックされました。")
      Case "TextBox1"
         Debug.WriteLine("TextBox1 がクリックされました。")
   End Select
   MessageBox.Show(CType(sender, Control).Name)
End Sub

Private Sub Form1_Load(ByVal sender As System.Object, _
                       ByVal e As System.EventArgs) Handles MyBase.Load
   Call SetAll_Click(Me)
End Sub

End Class



 [スレッド一覧へ] [親スレッドへ]