c# - 自定义菜单快捷键

标签 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

最佳答案

使用 MenuItem.ShortCutMenuItem.ShowShortCut属性。


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


由于有人指出您正在使用 ToolStripMenuItems,因此您应该能够独立设置 ShortCutKeyDisplayString随心所欲。您仍然需要自己处理实际的快捷方式。

关于c# - 自定义菜单快捷键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14104657/

相关文章:

c# - 是否有可能总是消除 goto 的?

c# - 我如何计算(手动)字符串的 SizeOf,以及一个类是否添加到一个大小?

javascript - jQuery:向日期字符串添加前导零

html - 如何修复出现故障的下拉菜单?

html - 对齐问题

jquery - 事件链接 jquery superfish

c# - 全为 0x00 的字节数组等于 0x08?

c# - Docker如何部署dotnet nginx? (不带.csproj)

c++ - 如何将系统调用的输出重定向到 C/C++ 程序内部?

java - 将复数 "String"转换为 "Boolean"