当使用只读文本框时,一些键盘组合得到不同的处理
本文关键字:组合 键盘 处理 只读 文本 | 更新日期: 2023-09-27 18:18:28
似乎CTRL + E和CTRL + R(至少)不像其他键盘组合那样得到处理。E和R不被识别。
我一直在测试的方法是创建一个带有文本框和按钮的表单,然后添加以下内容:private void button1_Click(object sender, EventArgs e)
{
textBox1.ReadOnly = !textBox1.ReadOnly;
}
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
bool ctrl = ModifierKeys == Keys.Control;
System.Diagnostics.Debug.WriteLine("Control pressed: " + e.Control + " Key pressed: " + e.KeyData + " Modifier Control pressed: " + ctrl);
}
当TextBox为只读时,只有某些键组合不起作用。我添加了一个带有处理所需键盘组合项的上下文菜单条,但这干扰了文本框的上下文菜单(实际上是我与文本框关联的DevEx拼写检查器上下文菜单)——它甚至没有显示。
有谁知道为什么或最好的方法来绕过这个吗?谢谢你的帮助。
正如Hans Passant在这个线程中指出的那样,通常最好使用ProcessCmdKey()方法来处理旨在提供类似命令的功能的Ctrl+x击键。
很高兴你成功了。