禁用DataGridView系统右键菜单

3

有人知道如何在用户右键单击DataGridViewTextBoxCell时禁用系统上下文菜单吗?我尝试在DataGridView级别重写WndProc(因为没有Cell级别的WndProc可重写),但似乎没有效果。非常感谢任何帮助。

以下是我用于在常规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);
        }
    }
}
1个回答

8
这对我有用:

这适用于我:

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接