当使用只读文本框时,一些键盘组合得到不同的处理

本文关键字:组合 键盘 处理 只读 文本 | 更新日期: 2023-09-27 18:18:28

似乎CTRL + ECTRL + R(至少)不像其他键盘组合那样得到处理。ER不被识别。

我一直在测试的方法是创建一个带有文本框和按钮的表单,然后添加以下内容:
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击键。

很高兴你成功了。