3

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

我尝试将其投射到标签上,但没有奏效。

4

1 回答 1

6

你无法得到它。基本缺陷是标签的 Text 使用缺少 HidePrefix 选项的 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);
        }
    }
于 2013-10-16T00:58:07.150 回答