【问题标题】:How do you disable a DataGridView's keyboard shorcuts?如何禁用 DataGridView 键盘快捷键?
【发布时间】:2010-04-12 02:20:07
【问题描述】:

我刚刚注意到DataGridViews 有一个默认快捷方式,因此每当您按下 Ctrl + H 时,DataGridView 的编辑控件就会退格,并且可以删除单元格中的整个选择。

这会很烦人,因为我想在按下 Ctrl + H 时打开替换框。有什么方法可以停止退格,同时仍然可以使用它来打开替换框?

我正在运行 C# 2.0,但如果较新的 C# 有解决方案,我可以将我的应用程序更新到 3.5。

【问题讨论】:

    标签: c# datagridview keyboard-shortcuts backspace


    【解决方案1】:

    这将进入您的表单代码:

    protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
    {     
      if (keyData == (Keys.Control | Keys.H))
      {
        //ShowReplaceDialog() or whatever it is you want to do here.
        return true; //we handled the key
      }
    
      return base.ProcessCmdKey(ref msg, keyData); //we didn't handle it
    }
    

    【讨论】:

    • 感谢它完美运行!你能告诉我什么时候重写 ProcessCmdKey 而不是仅仅处理 KeyDown 事件吗?
    • 不确定,TBH。 MSDN 说:“在消息预处理期间调用此方法来处理命令键。命令键是始终优先于常规输入键的键。命令键的示例包括加速器和菜单快捷键。”
    • 如何保持 Ctrl + c 和 Ctrl + v 功能完好无损。我无法使用这些快捷方式进行复制/粘贴。请帮忙。
    【解决方案2】:

    void m_dgv_KeyDown(object sender, KeyEventArgs e)
        {
                   if (e.KeyCode == (Keys.Control | Keys.H))
                    {
                      e.Handled = true;
                    }
       }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-06
      • 2023-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多