我的问题是这样的:
程序中有一个主form,将KeyPreview属性设为True,并重载了响应键盘的事件。
当我从命令行执行程序后,响应键盘的事件都不起作用了,我试过Keydown, KeyPress, PrecessCmdKey等等。 我分析了一下好像是form没有得到焦点,因为我切换一下程序窗口,例如将程序最小化然后再恢复,键盘事件就都可以得到了。请问怎么能强制让主form获得焦点呢? 或者如何才能总是让主form响应键盘事件,我需要响应方向键? 谢谢!我试了form.Activate, form.SetFocus都没作用啊。
程序中有一个主form,将KeyPreview属性设为True,并重载了响应键盘的事件。
当我从命令行执行程序后,响应键盘的事件都不起作用了,我试过Keydown, KeyPress, PrecessCmdKey等等。 我分析了一下好像是form没有得到焦点,因为我切换一下程序窗口,例如将程序最小化然后再恢复,键盘事件就都可以得到了。请问怎么能强制让主form获得焦点呢? 或者如何才能总是让主form响应键盘事件,我需要响应方向键? 谢谢!我试了form.Activate, form.SetFocus都没作用啊。
解决方案 »
- 请问双击打开exe程序和System.Diagnostics.Process.Start(@"c:\xxx.exe")有什么区别?
- 我的窗体的图标都变了,打不开了
- .net2003程序转换为.net2005后无法输入汉字
- 在用Sqlconnection连接数据库时出现:不支持provider的错误
- 关于AD删除部门 怎么设置LDAP的路径
- 请教高手
- 我想在一个项目中的基本类里定义加一个ToolTip控件,请问在别的WINFROM里能不能使用这个控件???
- C#如何设置双面打印PDF
- Visual Studio.net 2003无法创建或打开应用程序
- 我用System.Web.Mail中MailMessage类写了一段发邮件的代码,运行后为何显示:未能访问"CDO.Message"对象?
- asp.net web c# 求水晶报表打印动态dataset的源码
- 如何向数据库添加记录
{
switch (keyData)
{
case Keys.Left:
break;
case Keys.Up:
break;
case Keys.Right:
break;
case Keys.Down:
break;
}
return base.ProcessDialogKey(keyData);
}