如何在不按住Alt键的情况下显示下划线(快捷方式)?

4

我使用ContextMenuStrip创建了一个表单。我使用以下方式中的Text字段设置快捷方式:"&文件"。然而,当我通过右键单击打开此上下文菜单时,仅在同时按住Alt按钮时才显示下划线。有没有办法在不按住Alt按钮的情况下通过鼠标点击显示下划线?


看一下这个:http://stackoverflow.com/questions/10163617/is-there-a-way-to-force-always-show-mnemonics-in-menus - Tzu
我不确定,所以我在问 :) 或许有一种解决方法,可以不依赖设置来显示它? - Sergey Dudkin
1
是的,这是用户偏好,你不应该忽略它。控制面板 > 辅助功能中心 > 使键盘更易于使用 > 下划线键盘快捷方式和访问键。 - Hans Passant
1个回答

3
您可以通过自定义ToolStripSystemRenderer来修改文本渲染行为(HidePrefix):
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            contextMenuStrip1.Renderer = new AccessKeyMenuStripRenderer();
        }

        private void Form1_Click(object sender, EventArgs e)
        {
            contextMenuStrip1.Show(Cursor.Position);
        }
    }

    class AccessKeyMenuStripRenderer : ToolStripSystemRenderer 
    {
        protected override void OnRenderItemText(ToolStripItemTextRenderEventArgs e)
        {
            e.TextFormat &= ~TextFormatFlags.HidePrefix;
            base.OnRenderItemText(e);
        }
    }
}

哇,谢谢,这正是我需要的!您能告诉我在哪里可以阅读更多关于Renderer的内容吗? - Sergey Dudkin
请查看以下"How To"链接:https://msdn.microsoft.com/zh-cn/library/system.windows.forms.toolstrip.renderer%28v=vs.110%29.aspx页面底部。 - Alex K.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接