C# WinForm自定义控件响应键盘事件

自己定义的winform控件,用其他键盘事件都无法响应,只有用ProcessCmdKey事件可以达到目的(别忘了主窗体的KeyPreview属性要设置为true),写法如下:

        protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
        {
            switch (keyData)
            {
                case Keys.Alt | Keys.D3:
                    txtBillCode.Focus();
                    txtBillCode.SelectAll();
                    break;
            }
            return base.ProcessCmdKey(ref msg, keyData);
        }
时间: 2024-10-27 05:19:51

C# WinForm自定义控件响应键盘事件的相关文章

Ogre: 建立一个简单的框架——响应键盘事件

[转载请保证内容的完整性和正确性] 建立一个简单的框架——响应键盘事件 上一节我们在场景中添加了一个机器人,这一节我们将建立一个FrameListener类(顾名思义,这是一个侦听类),来控制模型进行移动. 创建FrameListener类 FrameListener类主要负责事件的侦听,如帧结束.键盘输入等事件.它继承自ExampleFrameListener类,如果需要的话还可以继承KeyListener(键盘事件).MouseListener(鼠标事件)和JoyStickListener(

MFC 对话框Dialog响应键盘事件

OnKeyDown不行 Dialog程序本来没有直接响应键盘的事件,如果你用OnKeyDown会发现不起作用. 那么你想按下"左键"."W键"."9键盘"应该怎么响应呢? 重载基类的BOOL PreTranslateMessage(MSG* pMsg)函数 最简单的键盘响应函数 头文件声明: BOOL PreTranslateMessage(MSG* pMsg); 源文件定义: BOOL CmfcDlg::PreTranslateMessage(

MFC 对话框Dialog响应键盘事件(组合键Ctrl+A)

在上一篇文章的基础上,这里描述如何捕获组合键,这里以Ctrl+A为例 做法就是按下Ctrl的时候用一个静态成员变量保存Ctrl是否被按下,当Ctrl按下的时候设置为true:当Ctrl键抬起的时候设置为false 其他组合键的开发用此例举一反三即可. 头文件声明 BOOL PreTranslateMessage(MSG* pMsg); 源文件定义 BOOL CmfcDlg::PreTranslateMessage(MSG* pMsg) { static bool m_ctrl_down = fa

给Jquery添加alert,prompt方法,类似系统的Alert,Prompt,可以响应键盘,支持拖动

我们在调用系统的Alert,prompt的弹出提示时,不同的系统会有不同的提示框,视觉效果不统一,而且不好看,功能单一,现在我们通过Jquery模拟Alert,prompt,现实统一视觉效果,而且内容丰富的弹出提示. Jquery可以扩展自己的功能,如果对Jquery开发插件不熟悉的人可以到官方网去看看文档,比较简单易懂. Js代码   /* *  本插件基于JQUERY *  Jquery版本: 1.7.2 *        Date:2012-06-28 *      Author:King

WinForm键盘事件

最近用WinForm做了一个俄罗斯方块的小游戏,其中在处理键盘事件的时候出了点问题,经过查阅资料和反复调试,总结键盘事件如下: 1.键盘事件的响应顺序为KeyDown>KeyPress>KeyUp; 2.KeyDown能响应所有按键,KeyPress能响应除方向键和F1.F2...的其他按键; 3.消息在WndProc处理之前,PreProcessMessage方法会调用多个方法对键盘消息进行预处理: 4.KeyDown的预处理方法:(按执行的先后顺序) (1)ProcessCmdKey,此方

UITextView: 响应键盘的 return 事件

UITextFieldDelegate代理里面响应return键的回调:textFieldShouldReturn:.但是 UITextView的代理UITextViewDelegate 里面并没有这样的回调.但是有别的方法可以实现:UITextViewDelegate里面有这样一个代理函数: - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSStri

C#/winform 自动触发鼠标、键盘事件

要在C#程序中触发鼠标.键盘事件必须要调用windows函数. 一.鼠标事件的触发 1.引用windows函数mouse_event /// <summary> /// 鼠标事件 /// </summary> /// <param name="flags">事件类型</param> /// <param name="dx">x坐标值(0~65535)</param> /// <param

响应键盘return事件

//点击其他地方,键盘收起 - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { [super touchesEnded:touches withEvent:event]; [self.viewendEditing:YES]; } //响应键盘return事件 - (BOOL)textFieldShouldReturn:(UITextField *)textField { [textField resignFirst

WPF获得全局窗体句柄,并响应全局键盘事件

场景 wpf窗体运行后,只能捕获当前Active窗体的按键事件,如果要监听windows全局事件,并对当前窗口事件响应. 第一步:导入Winows API public class Win32 { [DllImport("User32.Dll")] public static extern void SetWindowText(int h, String s); /// <summary> /// 如果函数执行成功,返回值不为0. /// 如果函数执行失败,返回值为0.要得