2012-12-16 127 views

回答

6

聽起來像你想打開你的ContextMenuStrip,如果你的用戶用鼠標右鍵單擊DataGridView的列的標題,滿足某些條件。

簡而言之:使用的DataGridView MouseDown事件而在此情況檢查的條件,如果他們遭遇呼叫您的ContextMenuStrip的Show方法。

,你可以參考

代碼示例:

private void dataGridView1_MouseDown(object sender, MouseEventArgs e) { 
    if (e.Button == MouseButtons.Right) { 
     var ht = dataGridView1.HitTest(e.X, e.Y); 
     // Place your condition HERE !!! 
     // Currently it allow right click on last column only 
     if (( ht.ColumnIndex == dataGridView1.Columns.Count - 1) 
      && (ht.Type == DataGridViewHitTestType.ColumnHeader)) { 
      // This positions the menu at the mouse's location 
      contextMenuStrip1.Show(MousePosition); 
     } 
    } 
} 
+0

不,我要打開我的ContextMenuStrip當用戶右鍵點擊一個DataGridView但不是上每一行(小區),但只有在行(細胞),我早先選擇了。 –

+0

一旦你在IF()語句的條件部分定義你的邏輯,它就會工作! –

+1

This contextMenuStrip1.Show(MousePosition);是我正在尋找的路線。謝謝。 –