2011-03-10 82 views
0

我處理這兩個事件點擊鼠標點擊和上propertyGridControl但是當我用右鍵點擊任何發生 - 它僅捕捉離開了。右擊鼠標不工作

private void propertyGridControl_Click(object sender, EventArgs e) 
    { 
     int i = 0; 
     if (e.Button == System.Windows.Forms.MouseButtons.Right) 
     { 
      MessageBox.Show("right"); 
     } 
    } 

如何捕捉鼠標右鍵單擊?

回答

1

我已經檢查瞭如何MouseClick事件的作品,並沒有看到這個問題。該事件被正確提出。我檢查了PropertyGridControl的10.2.5(最新版本)。我只能想象你在網格的編輯器中點擊。在這種情況下,鼠標和鍵盤事件由就地編輯器管理,而不是網格。要趕上這個事件,你可以使用下面的代碼:

private void propertyGridControl1_ShownEditor(object sender, EventArgs e) { 
    PropertyGridControl pgc = sender as PropertyGridControl; 
    pgc.ActiveEditor.MouseClick -= new MouseEventHandler(ActiveEditor_MouseClick); 
    pgc.ActiveEditor.MouseClick += new MouseEventHandler(ActiveEditor_MouseClick); 
} 

void ActiveEditor_MouseClick(object sender, MouseEventArgs e) { 
    if(e.Button == System.Windows.Forms.MouseButtons.Right) { 
     MessageBox.Show("right"); 
    }    
} 

我只有一個更多的想法。如果控制的ContextMenuStrip屬性設置,如果按下鼠標右鍵,則不會引發MouseClick事件。是你的情況嗎?解決方案很簡單 - 處理控件的MouseDown事件。