【问题标题】:Disable DataGridView System ContextMenu禁用 DataGridView 系统上下文菜单
【发布时间】:2008-11-05 22:28:53
【问题描述】:

有谁知道当用户在 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);
        }
    }
}

【问题讨论】:

    标签: c# .net winforms datagridview


    【解决方案1】:

    这对我有用:

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

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

    【讨论】:

      猜你喜欢
      • 2020-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多