4

DoubleClickアプリのトレイ アイコンのイベントに添付するこのコードがあります。

ni.DoubleClick +=
  delegate(object sender, EventArgs args)
        {
            this.MainWindow.Show();
        };

しかし、次のように、このコードを 2 つのイベント (DoubleClickClick)に使用することは可能ですか?

ni.DoubleClick, ni.Click +=
  delegate(object sender, EventArgs args)
        {
            this.MainWindow.Show();
        };

コードサイズと読みやすさを最小限に抑えるためだけに。ありがとう

4

4 に答える 4

21

ハンドラーを独自の関数に入れます。

private void ClickHandler(object sender, EventArgs args)
{
    this.MainWindow.Show();
}

次に、両方のイベントに接続します。

ni.DoubleClick += ClickHandler;
ni.Click += ClickHandler;
于 2013-04-30T14:39:03.687 に答える
5

いいえ、ただし、標準の非匿名関数にして、両方のイベントに使用できます。

private void OnClick(object sender, EventArgs e) { ... }

ni.DoubleClick += OnClick;
ni.Click += OnClick;
于 2013-04-30T14:38:21.050 に答える
5

EventHandlerラムダ式を使用して作成し、両方のイベントに追加するだけです。

EventHandler e = (sender, args) => this.MainWindow.Show();
ni.DoubleClick += e;
ni.Click += e;
于 2013-04-30T14:45:35.383 に答える
4

事前に変数に代入するだけです:

EventHandler eventHandler = delegate(object sender, EventArgs args)
    {
        this.MainWindow.Show();
    };

ni.DoubleClick += eventHandler;
ni.Click += eventHandler;

ところで、イベント ハンドラーの定義は、匿名メソッドの構文を使用して簡略化できます。

EventHandler eventHandler = (s, e) => this.MainWindow.Show();
于 2013-04-30T14:39:21.003 に答える