2017-07-26 15 views
0

トレイでのみ起動するWinFormsアプリケーションがあります。これをクリックすると、フォームが開きます。これは正常に動作します。NotifyIconコンテキストメニューでContextMenuItemをクリックすると、NotifyIconのクリックイベントが呼び出されます。

notifyIcon.Click += notifyIcon_Click; 

//Fires on icon click, AND on contextmenuitem click 
    private void notifyIcon_Click(object sender, EventArgs e) 
      { 
       new ActiveIssues(_hubProxy).Show(); 
      } 

私は、コンテキストメニューを追加したが、私はたContextMenuItemをクリックしたとき、それは最初のNotifyIconのクリックイベントを発生させ、THENたContextMenuItemは、両方のフォームを開く、イベントをクリックします。

notifiyiconのクリックイベントを発生させないようにする方法や、クリックがコンテキストメニューにあることを伝える方法はありますか?

+1

この動作を覚えていないと、明確なネジアップは見られませんが、「送信者」をクリックすると、何がクリックされたかを確認できます。 – Will

+0

ええ、私も同様だと思っていますが、送信者はそのクリックのContextMenuItemとそのクリックのNotifyIconでした。右クリックすると、問題の原因となっていたコンテキストメニューが表示されます。あなたの助けをありがとう! – Mike

答えて

1

コンテキストメニューがクリックされるまで、右クリックは登録されていないので、NotifyIconクリックイベントを登録してそれを右クリックするだけです。そのため、MouseEventArgsとしてクリックに対して提供されたEventArgsをキャストし、ボタンを確認する必要がありました。

private void notifyIcon_Click(object sender, EventArgs e) 
    { 
     if(((MouseEventArgs)e).Button == MouseButtons.Left) new ActiveIssues(_hubProxy).Show(); 
    } 
関連する問題