禁用DataGridView系统ContextMenu

当用户右键单击DataGridViewTextBoxCell时,是否有人知道如何禁用系统上下文菜单? 我试图在DataGridView级别覆盖WndProc(因为没有WndProc在Cell级别上覆盖),但似乎没有任何效果。 任何帮助将不胜感激。

以下是我在常规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); } } } 

这对我有用:

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

只需将ContextMenu属性设置为DataGridView的EditingControlShowing事件中的新(空)ContextMenu。