如何在 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;
}
}
我刚刚注意到 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;
}
}