我有一个带有多个子控件的用户控件。我需要用户界面对按键做出反应,因此我决定将处理代码放入 MainControl_KeyDown 事件中。但是,当我在应用程序中按下某个键时,该事件不会触发。
我通过搜索引擎找到了一个依赖于使用 Windows API 的解决方案,我想避免这种情况,因为对于 .NET 框架正确支持的功能来说,这似乎有点过分了。
你可以加以下方法 https://www.daniweb.com/programming/software-development/threads/189361/custom-user-control-key-events-problem给你的usercontrol
:
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if ((keyData == Keys.Right) || (keyData == Keys.Left) ||
(keyData == Keys.Up) || (keyData == Keys.Down))
{
//Do custom stuff
//true if key was processed by control, false otherwise
return true;
}
else
{
return base.ProcessCmdKey(ref msg, keyData);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)