自定义菜单快捷键

2024-04-26

I am working on an application that has a Menu on top of it. I want to use a different method for shortcut keys (being this snippet): this is for shortcut key: CTRL + N, 1

bool prefixSeen = false;

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
    if (prefixSeen)
    {
        switch (keyData)
        {
            case (Keys.Control | Keys.D1):
                MessageBox.Show("New file");
                prefixSeen = false;
                break;
        }
    }
    switch (keyData)
    {
        case (Keys.Control | Keys.n):
            prefixSeen = true;
        break;
    }

    return base.ProcessCmdKey(ref msg, keyData);
}

代码取自here https://stackoverflow.com/questions/3244063/how-to-get-a-combination-of-keys-in-c-sharp.

这是我的菜单:

我希望在菜单项中显示(右侧对齐)快捷键(我认为应该将其解释为字符串)。我怎样才能达到这个效果?

预先感谢大家,祝大家新年快乐。

Edit:Visual Studio 的内置方法是:


Use the MenuItem.ShortCut http://msdn.microsoft.com/en-US/library/system.windows.forms.menuitem.shortcut.aspx and MenuItem.ShowShortCut http://msdn.microsoft.com/en-us/library/system.windows.forms.menuitem.showshortcut.aspx特性。


如果您想创建自己的自定义快捷键,这些属性将不适合您,因为它们依赖于快捷键的预定枚举。在这种情况下,我建议您将其添加到菜单的文本中,没有自动执行此操作的方法。


既然有人指出您正在使用ToolStripMenuItems您应该能够独立设置ShortCutKeyDisplayString http://msdn.microsoft.com/en-us/library/system.windows.forms.toolstripmenuitem.shortcutkeydisplaystring%28v=vs.100%29.aspx满足您的一切愿望。您仍然需要自己处理实际的快捷方式。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

自定义菜单快捷键 的相关文章

随机推荐