我在一个窗口中有一个包含多个表单和控件的应用程序。其中一个是自定义控件,它有两个成员滚动条,垂直和水平。现在,当我按下键盘的箭头键(选择了自定义控件/焦点对准)时,滚动条会获得事件Scrollbar.Scroll。但我需要处理箭头键用于其他目的,只需鼠标滚动。
自定义控件的OnKeyDown仅在两个滚动条中的任何一个被聚焦后才接收事件,该滚动条位于第一个击键之后。所以,我没有按第一个箭头来处理,这是不好的。
我还尝试将处理程序添加到Scrollbar.KeyDown事件。没用。
如何处理箭头以使其不滚动视图?
答案 0 :(得分:3)
您可以尝试在预期的组件中重载ProcessDialogKey
,如下所示:
protected override bool ProcessDialogKey(Keys keyData)
{
return true;
}
像魅力一样。
答案 1 :(得分:0)
尝试使用PreviewKeyDown事件。
在按下键之前检查它。