微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

.net – 为什么too​​lstriplabel的backcolor属性在设计时或运行时没有变化?

我需要有一个工具条标签,它的背面颜色在运行时会发生变化,但无论我做什么.它只是不会改变它的背景颜色,即使它们可以选择改变它的背景颜色.为什么这样,如何在运行时或设计时间内更改其backcolor属性

提前致谢,

解决方法

这受ToolStrip的RenderMode设置的影响.只有当您将其更改为System时,BackColor属性才会生效.其他渲染器使用主题颜色.你可能不会非常喜欢System,但是你可以通过实现自己的渲染器让你吃蛋糕并吃掉它.使它看起来类似于:

public partial class Form1 : Form {
    public Form1() {
        InitializeComponent();
        this.toolStrip1.Renderer = new MyRenderer();
    }
    private class MyRenderer : ToolStripProfessionalRenderer {
        protected override void OnRenderLabelBackground(ToolStripItemRenderEventArgs e) {
            using (var brush = new SolidBrush(e.Item.BackColor)) {
                e.Graphics.FillRectangle(brush,new Rectangle(Point.Empty,e.Item.Size));
            }
        }
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐