使用只读文本框时,某些键盘组合的处理方式不同

时间:2014-08-18 19:40:45

标签: c# winforms textbox keydown

似乎 CTRL + E CTRL + R (至少)don&# 39;以与其他键盘组合相同的方式处理。 E R 分别未被识别。

我测试的方法是创建一个带有TextBox和Button的表单,然后添加以下内容:

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是ReadOnly时,只有某些键组合不起作用。我添加了一个上下文菜单条,其中包含用于处理所需键盘组合的项目,但这会干扰文本框的上下文菜单(实际上是我与TextBox关联的DevEx拼写检查器上下文菜单) - 它没有甚至展示。

有谁知道为什么或最好的解决方法?感谢您提供任何帮助。

1 个答案:

答案 0 :(得分:1)

正如传奇人物Hans Passant在this thread上指出的那样,通常最好处理Ctrl + x键击,以便通过ProcessCmdKey()方法提供类似命令的功能。

很高兴为你效劳。