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

How to show underscore (shortcut) without holding Alt?

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

您可以通过自定义 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);
        }
    }
}