回 帖 发 新 帖 刷新版面

主题:关于设置按钮快捷键的问题

初学C#,要开发windows form的程序。我的开发平台是Visual Studio 2005。

我想要让程序更人性化一些,为每个按钮添加相应的组合快捷键。例如有个命名为“确定”的按钮,我在 text 属性里设置为“确定(&O)”。可是运行时无论我按alt+o或是ctrl+o都没有反应。难道还有其他的设置或者还要编写代码??
同样的情况在mfc里,不需要多余设置就行了呀。

回复列表 (共4个回复)

沙发

自己顶一下吧。
在网上查了一下,没找到解决办法。希望能大家能给我个答复。
[em2]

板凳

是ctrl还是ALT吗

3 楼

我想做成alt的组合键。
自己在网上找到了一些可能的解决方案。看样子好像是C#不能自动实现组合快捷键,而是要调用非托管的RegisterHotKey函数来实时注册快捷键。我先继续研究一下。

4 楼

发现一种较简单的替代方法。
首先将 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 中放置相应的点击按钮处理函数即可

我来回复

您尚未登录,请登录后再回复。点此登录或注册