.NET UserControl继承父窗体背景

标签 .net user-controls treeview background

我有一个继承自TreeView的WinForms控件,我希望它能够根据表单(也是自定义的)背景自动调整背景颜色。如何制作?

最佳答案

让控件知道其父控件通常是一个坏主意。然而,有一个专门的方法来检测父背景颜色的变化,所以这是可以的。 BackColor 是一个环境属性,如果未显式分配,则其值与父级的 BackColor 相同。因此,请利用这一点:

using System;
using System.Windows.Forms;

class MyTreeView : TreeView {
    protected override void OnParentChanged(EventArgs e) {
        if (this.Parent != null) this.BackColor = this.Parent.BackColor;
        base.OnParentChanged(e);
    }
    protected override void OnParentBackColorChanged(EventArgs e) {
        this.BackColor = this.Parent.BackColor;
        base.OnParentBackColorChanged(e);
    }
}

关于.NET UserControl继承父窗体背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3381630/

相关文章:

.net - 如何避免 WPF 全屏应用程序中的闪烁?

vba - 在用户表单中的命令按钮上使用办公室图标作为图像

c# - 在 Winform 中访问用户控件的控件属性的正确方法是什么?

c# - 将 WinForms UserControl 公开为 ActiveX 控件

user-interface - Flutter Widget 显示嵌套树结构?

javascript - 如何在js中创建 TreeView

c# - 从代码测试存储过程是否为 "Parse"/"Compile"

c# - 使用 linq to sql 回滚?

c# - 关于C#中Dispose()和析构函数的两个问题

c# - 为 TreeView 和 TreeViewItem 触发的 ContextMenuOpening 事件