工具条菜单项快捷键不会随着鼠标单击而结束行



我有一个奇怪的问题。我有一个工具StripMenuItem,我希望在第一个字母下划线。 这是在Windows Forms VS 2010中。它在设计器中定义,文本等于"&Expand",并显示快捷键 = true,快捷键 = Alt+E。 它按预期显示在设计器中的窗体中,并带有 E 下划线。我有一个更改名称的单击事件,然后执行某些操作。 如果再次单击,则会重新设置名称

    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,则从那时开始,该字母在两种情况下都会带有下划线。 即使使用鼠标。有什么想法吗?谢谢

在我的评论之后,我看得更深了一点。这是预期功能,可由用户配置。

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

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

最新更新