Setting UseMnemonic for ToolstripLabel

本文关键字:ToolstripLabel for UseMnemonic Setting | 更新日期: 2023-09-27 18:35:43

我有一个 ToolstripLabel,我想将 UseMnemonic 设置为 false。但它没有此属性。有没有办法做到这一点?

我尝试将其转换为标签,但没有用。

Setting UseMnemonic for ToolstripLabel

你无法到达它。 基本缺陷是标签的文本使用缺少隐藏前缀选项的 TextFormatFlags 值呈现。 更改该值是不可能的,它被埋在内部代码中。

解决方法是使用自己的呈现器,并通过在呈现文本之前更改文本来解决问题。 使其看起来像这样:

    public Form1() {
        InitializeComponent();
        toolStrip1.Renderer = new MyRenderer();
    }
    private class MyRenderer : ToolStripProfessionalRenderer {
        protected override void OnRenderItemText(ToolStripItemTextRenderEventArgs e) {
            if (e.Item is ToolStripItem) e.Text = e.Text.Replace("&", "&&");
            base.OnRenderItemText(e);
        }
    }