【问题标题】:Setting UseMnemonic for ToolstripLabel为 ToolstripLabel 设置 UseMnemonic
【发布时间】:2013-10-15 23:21:28
【问题描述】:

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

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

【问题讨论】:

    标签: c# .net winforms label toolstrip


    【解决方案1】:

    你无法做到。基本缺陷是标签的 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);
            }
        }
    

    【讨论】:

    • 效果很好!非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-05
    • 1970-01-01
    • 2023-02-09
    • 2014-07-13
    • 2012-06-30
    相关资源
    最近更新 更多