tagCANDY CGI VBレスキュー(花ちゃん) - 全てのコントロールのイベントを1つのイベントで管理(VB.NET) - Visual Basic 6.0 VB2005 VB2010
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ
全てのコントロールのイベントを1つのイベントで管理(VB.NET)
元に戻る スレッド一覧へ 記事閲覧
このページ内の検索ができます。(AND 検索や OR 検索のような複数のキーワードによる検索はできません。)

全てのコントロールのイベントを1つのイベントで管理(VB.NET) [No.159の個別表示]
     サンプル投稿用掲示板  VB2005 〜 用トップページ  VB6.0 用 トップページ
日時: 2009/12/26 21:56
名前: 花ちゃん

***********************************************************************************
* カテゴリー:[イベント][基本コード][]                                           *
* キーワード:イベント,1箇所所,まとめる,一括,共有,                                *
***********************************************************************************

元質問:フォームのClickイベントをどこでもで... - 権太郎   2007/05/23-14:22 No.5543

フォームのClickイベントは、そのクリックした場所に他のコントロールが無い場合発生する
ようですが、コントロールがある場所においてもフォームのClickイベントが発生できないも
のでしょうか?

-----------------------------------------------------------------------------------
Re: (解決済み)Re^6: フォーム.. - KG  2007/05/25-18:25 No.5567
-----------------------------------------------------------------------------------

Private Sub SetEvents(ByVal ctrls As System.Windows.Forms.Control.ControlCollection)
   For Each ctrl As Control In ctrls
     If ctrl.HasChildren Then
       SetEvents(ctrl.Controls)
     ElseIf ctrl.GetType Is GetType(Button) Then
       AddHandler ctrl.MouseEnter, AddressOf Buttons_MouseEnter
       AddHandler ctrl.MouseLeave, AddressOf Buttons_MouseLeave
     End If
   Next
End Sub

似たような処理をしたことがあるので参考までに。
メンテ

Page: 1 |

全てのコントロールのクリックイベントを一括処理(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
メンテ

Page: 1 |

 投稿フォーム               スレッド一覧へ
題  名 スレッドをトップへソート
名  前
パスワード (記事メンテ時に使用)
投稿キー (投稿時 投稿キー を入力してください)
コメント

   クッキー保存   
スレッド一覧へ