如何在 C# 中禁用文本框键盘快捷键?

How to disable a textbox keyboard shorcuts in c#?

我刚刚注意到 Textbox 有一个默认快捷方式,因此每当您按下 Ctrl + H 时,它都会像按下 BackSpace 一样开始删除字母。

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

CTRL-H 是 ASCII BS(退格)字符。

您可以禁用(或重新定义)它,因为 CTRL+H 和 BackSpace 不是完全相同的东西。 this question 上列出了一些带有其他键的示例。

您需要像这样在 Form1.Designer.cs 中添加 KeyEventHandler

this.textBox1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.textBox1_KeyDown);

并在您的 Form1.cs 中添加此函数:

private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.H && e.Modifiers == Keys.Control)
    {
        //uncomment if ReadOnly is not working
        //e.SuppressKeyPress  = true;
        
        textbox1.ReadOnly = true;
        Form2 form2 = new Form2();
        form2.Show();
        textbox1.ReadOnly = false;
    }
}