我相信以前有人问过类似的问题,但没有一个解决方案对我有用。我有一些代码需要在同时按下 CTRL 按钮和"+"按钮时运行。我确保在父论坛上将 KeyPreview 字段设置为 true。我尝试将以下事件处理程序放在控件的类中,但到目前为止没有一个对我有用。当我按任何键时,事件没有被捕获:
private void PreviewControl_OnKeyDown(object sender, KeyEventArgs e){}
protected override OnKeyDown(KeyEventArgs e){}
protected override bool ProcessCmdKey(ref Message msg, Keys keyData){}
所以我在
@Reza Aghaei的帮助下让它工作。我用了这个(首选)。Reza 是对的,控件实际上并没有获得焦点,所以我需要添加此代码,以便在单击控件时提供焦点。但是,我无法使用 OnKeyDown 事件处理程序。相反,我必须在控件类中使用ProcessCmdKey(ref Message msg,Keys keyData){},以便它捕获键事件。