如何从自定义控件中的滚动条禁用键盘

时间:2010-08-11 22:29:02

标签: c#

我在一个窗口中有一个包含多个表单和控件的应用程序。其中一个是自定义控件,它有两个成员滚动条,垂直和水平。现在,当我按下键盘的箭头键(选择了自定义控件/焦点对准)时,滚动条会获得事件Scrollbar.Scroll。但我需要处理箭头键用于其他目的,只需鼠标滚动。

自定义控件的OnKeyDown仅在两个滚动条中的任何一个被聚焦后才接收事件,该滚动条位于第一个击键之后。所以,我没有按第一个箭头来处理,这是不好的。

我还尝试将处理程序添加到Scrollbar.KeyDown事件。没用。

如何处理箭头以使其不滚动视图?

2 个答案:

答案 0 :(得分:3)

您可以尝试在预期的组件中重载ProcessDialogKey,如下所示:

protected override bool ProcessDialogKey(Keys keyData)
{
    return true;
}

像魅力一样。

答案 1 :(得分:0)

尝试使用PreviewKeyDown事件。

在按下键之前检查它。