ToolStripMenuItem快捷键不会通过鼠标单击进行操作

时间:2014-12-01 16:51:34

标签: c# winforms keyboard-shortcuts

我有一个奇怪的问题。我有一个toolStripMenuItem,我希望第一个字母带下划线。这是在Windows窗体VS 2010中。 它在设计器中定义,文本等于“& Expand”,并显示快捷键= true和快捷键= Alt + E.它以设计的形式显示在设计者中,如下划线所示。 我有一个更改名称的click事件,然后执行某些操作。如果再次单击,则将名称设置为

    private void expandToolStripMenuItem_Click(object sender, EventArgs e)
    {
        if (expandToolStripMenuItem.Text == "&Expand")
        {
            expandToolStripMenuItem.Text = "Collaps&e";
            expandToolStripMenuItem.ShortcutKeys = Keys.Alt | Keys.E;
            // execute some other code
        }

        else
        {
            expandToolStripMenuItem.Text = "&Expand";
            expandToolStripMenuItem.ShortcutKeys = Keys.Alt | Keys.E;
         }
    }

我还在显示的表单中设置& Expand并加载事件,尽管这没有区别。 现在,当表单打开时,E没有加下划线。如果我用鼠标单击它会显示折叠,但e没有下划线。我可以用鼠标来回走动,字母从不加下划线。但是,如果我输入AltE,那么从这一点开始,这两个字母都会加下划线。即使用鼠标。 有任何想法吗? 感谢

1 个答案:

答案 0 :(得分:0)

在我的评论之后,我看起来更深一点了。这是预期的功能,configurable by the user

在轻松访问中心的Windows控制面板中,"使键盘更易于使用"名为"更容易使用键盘快捷键:下划线键盘快捷键和访问键"。如果取消选中该复选框,则当用户已使用访问键导航时(使用Alt),系统将仅为访问键(您正在处理的快捷键下划线的正确名称)加下划线。如果选中该复选框,则它们将始终带有下划线。

您可以在Windows中的几乎任何应用程序中使用文件菜单进行测试。