- 日時: 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
|