1

すべてのイベントについて、イベントハンドラーを作成する必要があります。

this.MouseMove += new MouseEventHandler(Home_MouseMove);
this.KeyPress += new KeyPressEventHandler(Home_KeyPress);

すべてのボタンハンドラーをキャプチャする場合は、ボタンごとにイベントハンドラーを作成する必要があります。

良い方法はありますか?

4

1 に答える 1

1

Buttonイベントのタイプのすべてのコントロールにイベントを添付できますForm_Load。さらに良いことに、の呼び出し後のコンストラクター自体でInitializeComponent

なぜ「後」?以前に行った場合、添付するフォームを制御できないためです。

foreach(Control c in this.Controls)
{
   if(c is Button)
   {
        // Just an example, mold it to fit your app.
        ((Button) c).Click += new MouseClickHandler();
   }
}

Buttonsを含むコントロールがある場合、そのボタンは;PanelのForm( "this")コレクションの一部ではないため、これによってイベントがアタッチされないことに注意してください。.Controlsむしろthis.Panel1.Controls。見る?

これが当てはまる場合は、再帰を使用して各コレクションを反復処理できます。

于 2012-07-13T02:30:02.463 に答える