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

时间:2015-04-22 13:58:20

标签: c# .net shortcut contextmenustrip

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

1 个答案:

答案 0 :(得分:2)

您可以通过自定义HidePrefix修改文字呈现行为(ToolStripSystemRenderer):

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);
        }
    }
}