自定义菜单快捷键

时间:2012-12-31 17:55:37

标签: c# string menu keyboard-shortcuts customization

我正在开发一个顶部有一个菜单的应用程序。我想对快捷键使用不同的方法(就是这个片段):这是用于快捷键: 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

这是我的菜单:

enter image description here

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

提前致谢,祝大家新年快乐。

编辑: Visual Studio的内置方法是:

enter image description here

1 个答案:

答案 0 :(得分:8)

使用MenuItem.ShortCutMenuItem.ShowShortCut属性。


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


由于有人指出您使用的是ToolStripMenuItems,因此您应该可以独立地将ShortCutKeyDisplayString设置为您想要的内容。您仍然需要自己处理实际的快捷方式。