- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:フォーム上の任意のコントロール上でのイベントをまとめてハンドリングする方法)
フォーム上の任意のコントロール上でのイベントをまとめてハンドリングする方法
このQ&Aのポイント
- フォーム上に配置されたコントロールで発生したイベントを、個別にハンドルせずにまとめて処理する方法があるかを知りたいです。
- ボタンが100個ある場合に、個別にハンドルする書き方ではなく、どのコントロールでもクリックイベントが発生したことを知る方法について教えてください。
- VB.NET2005の環境で、フォーム上の任意のコントロールで発生したクリックイベントをまとめて処理する方法について教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
AddHandlerを使えば関数とイベントをコード上でハンドルすることができますので 以下のような方法でできるかと思います。(孫コントロールまでしちゃいますが) ------------------------------- 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.Click, AddressOf Button_Click End If Next End Sub Private Sub Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) '処理 End Sub
お礼
なるほど、AddHandlerで好きなように登録できるのですね。 ありがとうございました!