-2

コマンド ボタンのコレクションに単一のジェネリック メソッドを提供するにはどうすればよいでしょうか。digit(0, 1,2..) コマンド ボタンのコレクションがあり、動作が似ているため、それらすべてに対して単一のイベント メソッドが必要です。

4

2 に答える 2

2

イベントのデリゲートのパターンは、2 つのパラメーターを使用することです。1 つは送信者、もう 1 つは eventargs です。送信者に基づいて何かを行うことも、タグに何かを入れることもできます

void OnButtonClick(object sender, EventArgs e)
        {
            Button button = sender as Button;

            object data = button.Tag;
            DoSomething(data);
        }
于 2012-10-31T02:59:57.797 に答える
1

これは、マルチキャスト デリゲートによって実現できます。

  1. GenericButtonClickイベント ハンドラーを次のように定義します。

    void OnGenenicButtonClick(object sender, EventArgs e)
    {
        var btn = sender as Button;
        // ... do something ...
    }
    
  2. GenericButtonClickこの方法でイベント デリゲートを割り当てます (たとえば、Loadイベント ハンドラーで)。

    cmdBtn1.Click += OnGenenicButtonClick;
    cmdBtn2.Click += OnGenenicButtonClick;
    //...
    

参照:

于 2012-10-31T03:23:17.450 に答える