c# – Fire Form KeyPress事件
发布时间:2020-12-15 18:14:18 所属栏目:百科 来源:网络整理
导读:我有一个C#winform,我有1个按钮. 现在,当我运行我的应用程序时,该按钮会自动获得焦点. 问题是我的表单的KeyPress事件不起作用,因为按钮是聚焦的. 我试过这个.Focus();在FormLoad()事件上,但仍然没有KeyPress事件. 解决方法 您需要覆盖表单的 ProcessCmdKey m
我有一个C#winform,我有1个按钮.
现在,当我运行我的应用程序时,该按钮会自动获得焦点. 问题是我的表单的KeyPress事件不起作用,因为按钮是聚焦的. 我试过这个.Focus();在FormLoad()事件上,但仍然没有KeyPress事件. 解决方法
您需要覆盖表单的
ProcessCmdKey method.这是您通知子控件具有键盘焦点时发生的关键事件的唯一方式.
示例代码: protected override bool ProcessCmdKey(ref Message msg,Keys keyData) { // look for the expected key if (keyData == Keys.A) { // take some action MessageBox.Show("The A key was pressed"); // eat the message to prevent it from being passed on return true; // (alternatively,return FALSE to allow the key event to be passed on) } // call the base class to handle other key events return base.ProcessCmdKey(ref msg,keyData); } 至于为什么this.Focus()不起作用,这是因为表单本身不能具有焦点.特定控件必须具有焦点,因此当您将焦点设置到窗体时,它实际上将焦点设置为可以接受具有最低TabIndex值的焦点的第一个控件.在这种情况下,那是你的按钮. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- POSTGRESQL 与MYSQL 实现分割字符串的方法对比
- AM3517之SD卡启动盘恢复NAND flash的数据:U-boot(三)
- Oracle 恢复被删除的数据,解决误操作删除数据
- ruby-on-rails – 如何使用rails 3.1覆盖Zurb Foundation c
- 为什么PowerShell工作流比XML文件分析的非工作流脚本慢得多
- 简要对比C语言中的setgid()函数和setregid()函数
- react下一定时间内如果条件变化不进行请求
- c# – ASP.NET MVC返回ViewResult
- ruby-on-rails – rails simple_nested_form_for fields_fo
- SQLite如何声明为Byte Array?