C# 禁用DataGridView系统上下文菜单
有人知道当用户右键单击DataGridViewTextBoxCell时如何禁用系统上下文菜单吗?我尝试在DataGridView级别重写WndProc(因为在单元格级别上没有WndProc可重写),但似乎没有任何效果。任何帮助都将不胜感激 下面是我在常规文本框中实现这一点的方法,但是,我需要用同样的方法处理DataGridViewCellC# 禁用DataGridView系统上下文菜单,c#,.net,winforms,datagridview,C#,.net,Winforms,Datagridview,有人知道当用户右键单击DataGridViewTextBoxCell时如何禁用系统上下文菜单吗?我尝试在DataGridView级别重写WndProc(因为在单元格级别上没有WndProc可重写),但似乎没有任何效果。任何帮助都将不胜感激 下面是我在常规文本框中实现这一点的方法,但是,我需要用同样的方法处理DataGridViewCell public class NoContextTextBox : TextBox { private static readonly int WM_C
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();
}
只需在DataGridView的EditingControlShowing事件中将ContextMenu属性设置为new(empty)ContextMenu