主题:关于设置按钮快捷键的问题
zxl7766
[专家分:70] 发布于 2009-06-17 10:20:00
初学C#,要开发windows form的程序。我的开发平台是Visual Studio 2005。
我想要让程序更人性化一些,为每个按钮添加相应的组合快捷键。例如有个命名为“确定”的按钮,我在 text 属性里设置为“确定(&O)”。可是运行时无论我按alt+o或是ctrl+o都没有反应。难道还有其他的设置或者还要编写代码??
同样的情况在mfc里,不需要多余设置就行了呀。
最后更新于:2009-06-17 16:37:00
回复列表 (共4个回复)
沙发
zxl7766 [专家分:70] 发布于 2009-06-17 16:37:00
自己顶一下吧。
在网上查了一下,没找到解决办法。希望能大家能给我个答复。
[em2]
板凳
AWT8GUI [专家分:320] 发布于 2009-06-18 14:16:00
是ctrl还是ALT吗
3 楼
zxl7766 [专家分:70] 发布于 2009-06-19 11:08:00
我想做成alt的组合键。
自己在网上找到了一些可能的解决方案。看样子好像是C#不能自动实现组合快捷键,而是要调用非托管的RegisterHotKey函数来实时注册快捷键。我先继续研究一下。
4 楼
zxl7766 [专家分:70] 发布于 2009-07-01 16:22:00
发现一种较简单的替代方法。
首先将 Form 的 KeyPreview 属性设为 True,这样当焦点落在 Form 中的其他控件上时,Form 仍然可以获得快捷键按下的事件。
然后对 Form 添加 KeyDown 事件处理函数,例如 Form_KeyDown(),在其中加入如下代码即可:
private void Form_KeyDown(object sender, KeyEventArgs e)
{
if (e.Alt && e.KeyCode == Keys.F) // 按下 Alt + F 键
{
doSomething...
}
else if (e.Alt && e.KeyCode == Keys.O) // 按下 Alt + O 键
{
doSomething...
}
...
}
在 doSomething 中放置相应的点击按钮处理函数即可
我来回复