覆盖按键

时间:2010-12-14 16:47:18

标签: c#

我知道这对你们中的一些人来说可能是一个简单的答案,但我不知道如何正确地做到这一点。我已经创建了一个文本编辑器,它还有一个显示功能的对接窗口。我在菜单中设置了F8是显示功能窗口的快捷键。我还想抓住F8 keypress事件来解析程序中函数的当前数据,但我不能让它发生..

4 个答案:

答案 0 :(得分:3)

捕获文本编辑器KeyPressed事件并检查即将进入的KeyEventArgs,然后将未处理标记为false,这将导致事件传递到父控件:

实施例

KeyPressed(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.F8) DoSomething();
    e.Handled = false;
}

回复您添加到问题中的评论。您可能需要将控件KeyPreview设置为True。我认为KeyPreview可能只在表单级别提供,但我不确定。

答案 1 :(得分:1)

OnKeyPress(或OnKeyDownOnKeyUp)事件设置事件处理程序,并检查按下了哪个键(它将在事件参数中)。然后,你可以做任何你想做的事。

答案 2 :(得分:1)

我不认为标记的答案是正确的。 KeyPress事件处理程序不会处理Function键;您需要使用KeyUp事件处理程序或ProcessDialogKey方法。

答案 3 :(得分:0)

我不确定是否了解所有内容,但是您不能使用任何控件中的KeyPress Event吗?