Как показать подчеркивание (ярлык) без удержания Alt?

Я создал форму с ContextMenuStrip. Я установил его ярлык, используя поле "Текст" следующим образом: "& Файл". Однако, когда я открываю это контекстное меню щелчком правой кнопки мыши, подчеркивание отображается только тогда, когда я одновременно удерживаю кнопку Alt. Есть ли способ показать подчеркивание при щелчке мышью, не удерживая кнопку Alt?

1 ответ

Решение

Вы можете изменить поведение рендеринга текста (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);
        }
    }
}
Другие вопросы по тегам