2011-09-20 66 views
0

我有一個包含一些選項的ContextMenuStrip,我幾乎已經實現的一切,我只是想檢查我的options_MouseClick選擇哪些項目的ContextMenuStrip:檢查所選項目

private void ConsoleRichTextBox_MouseDown(object sender, MouseEventArgs e) 
    { 

     if (e.Button == MouseButtons.Right) 
     { 

      options.Show(); 
      Point currentPoint; 
      currentPoint = new Point(e.X, e.Y); 
      options.Show(ConsoleRichTextBox, currentPoint); 
     } 

    } 

    private void options_MouseClick(object sender, MouseEventArgs e) 
    { 
     //if options selected = clear 
     ConsoleRichTextBox.Clear(); 
    } 
+0

放斷點的方法options_MouseClick內部和(超過鼠標和擴大小交叉)與調試器檢查的種類和發送方的值和MouseEventArgs e的特性。發現有趣的事情? –

回答

1

你應該只處理的Click事件每個菜單項。無需處理contextmenustrip的MouseClick事件。您也可以將多個處理程序添加到同一個方法中,並使用sender參數進行區分,因爲這將引用被單擊的確切菜單項。

 ToolStripMenuItem tsmi = new ToolStripMenuItem(); 
     tsmi.Click += tsmi_Click; 

和:

public void tsmi_Click(object sender, EventArgs e) 
    { 
     if (sender == tsmi) 
     { 
      // Do stuff 
     } 
    }