2008-11-05 95 views
2

有誰知道當用戶在DataGridViewTextBoxCell中單擊右鍵時,如何禁用系統上下文菜單?我試圖重寫DataGridView級別的WndProc(因爲在Cell級別上沒有WndProc覆蓋),但似乎沒有任何工作。任何幫助將不勝感激。禁用DataGridView系統上下文菜單

以下是我在常規TextBox中實現此操作的方法,但是,我需要以同樣的方式爲DataGridViewCell工作?

public class NoContextTextBox : TextBox { 
    private static readonly int WM_CONTEXTMENU = 123; 
    protected override void WndProc(ref Message m) { 
     if (m.Msg != WM_CONTEXTMENU) { 
      base.WndProc(ref m); 
     } 
    } 
} 

回答

7

這爲我工作:

private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) 
    { 
     e.Control.ContextMenu = new ContextMenu(); 
    } 

只需設置ContextMenu屬性到新(空)的ContextMenu在DataGridView的EditingControlShowing事件。

+0

你是我的英雄。 – sbeskur 2008-11-06 00:00:26