C# 窗体(Form)中如何实现全局快捷键 如:[Ctrl + Enter]
来源:互联网 发布:淘宝客浏览器插件 编辑:程序博客网 时间:2024/05/28 11:29
大家都知道Form有个AcceptButton属性.......就是绑定一个button,然后不管当前焦点在窗体(Form)的某个控件上,只要按回车就会响应相应的button事件...
this.AcceptButton = button1; //按回车就会响应button1的Click事件
但是这个只能实现回车啊....如果想实现Ctrl + Enter或者其他的Ctrl+ XXX 怎么办呢(如:QQ一样,按Ctrl + Enter发送消息).....
很多人马上会想到用KeyDown 事件.......没用,如果焦点不在Form上..不会响应这个事件的 ,于是乎可能这个时候很多人想到了用什么API 函数实现...满世界的找相关的信息... 甚至上CSND上问..呵呵
我这里介绍的方法不用什么API函数,一看就会............可能很多人已经用过这个功能啦....知道的可以不看啊
用菜单实现MenuStrip 和 ContextMenuStrip 控件都可以实现...额,我一提到这个控件大家十七八九应该知道怎么用了吧?
拖一个菜单MenuStrip 或者ContextMenuStrip 给菜单添加一个Item...类型是ToolStripMenuItem(就是一个普通的文本),注册Click事件,如果是ContextMenuStrip 那么要绑定给Form窗体....
this.testToolStripMenuItem.Click += new System.EventHandler(this.testToolStripMenuItem_Click);
//
private void testToolStripMenuItem_Click(object sender,EventArgs e)
{
MessageBox.Show("按啦Ctrl + Enter .......");
}
ToolStripMenuItem是有一个属性[ShortcutKeys]的专门设置快捷看的....而且这个快捷看是全局的,就是焦点不管落在那个控件上,只要按相应的快捷键都会响应相应的Click事件.....
如果在属性栏上设置ShortcutKeys属性为Ctrl + B,就是在Form1.Designer.cs文件中看到这样一段代码
this.testToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.B))); //实现Ctrl + B键
然后的工作是你只需要隐藏testToolStripMenuItem就可以啦: //隐藏...不要让别人看到哟....
testToolStripMenuItem.Visible = false;
这样快捷键Ctrl + XXX就实现啦..............属性栏里只选的...但是属性栏里是没有Ctrl + Enter选的...需要自己改代码
同样是Form1.Designer.cs文件里,只需要把Keys.B 改成Keys.Enter就OK
this.testToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Enter))); //实现Ctrl + Enter 就搞定啦
提示:最好不要去设置系统自带的快捷键.......如Ctrl + A ,Ctrl + C .....这样就不响应系统的快捷键啦....如文本框里就不能全选文本等操作啦
学习博客网址,谨表谢意
http://blog.163.com/china0359%40yeah/blog/static/121719436201051062448951/
- C# 窗体(Form)中如何实现全局快捷键 如:[Ctrl + Enter]
- 按快捷键提交表单(如 Ctrl + Enter)
- IE中Ctrl和Enter组合快捷键输入网址
- Ctrl+Enter快捷键的设置
- C#中如何在外部类访问控制Form窗体控件
- C#中实现拖动无边框窗体Form
- Ctrl+Enter提交的一个form
- C#中设置全局快捷键
- FCK 实现Ctrl+Enter提交
- WinForm中如何实现嵌入form窗体(panel与子窗体)
- 如何用enter key正确提交Form
- C#中窗体Form的美化
- C#中窗体Form的美化
- C#中窗体Form的美化
- C#中窗体Form的美化
- C#组合键应用(Ctrl+Enter)
- C# 在windows form实现不规则窗体&透明窗体
- c#如何实现在两个窗体(Form)间传输数据或变量
- 论把独立商城当做是一个产品
- Construct Binary Tree from Inorder and Postorder Traversal
- TCL招聘专职游戏体验师 用户体验成大屏游戏重点
- POJ 1840 Eqs
- Java Random 随机数
- C# 窗体(Form)中如何实现全局快捷键 如:[Ctrl + Enter]
- 01-2. Maximum Subsequence Sum (25)
- Cocos2d-x 3.2 大富翁游戏项目开发-第十七部分 Toast提示框
- [水题][第一阶段-回归水题][HDOJ-2030]汉字统计
- java中统计字符串中汉字,英文,数字,特殊符号个数
- BZOJ1003 [ZJOI2006]物流运输trans(集合型动态规划)
- 魔漫相机任晓倩:我是这样说服马云投资千万美金的
- POJ-1475(A*算法)
- 新的SQUASHFS 4.3中的unsquashfs4新特性,能显示镜像当初的生成参数了