0

我是这样写的:

this.myTreeView.FullRowSelect = true;
this.myTreeView.Size = new System.Drawing.Size(170, 300);

当我使用这个属性时myTreeView.Enabled = false,它变成了这样:

在此处输入图像描述

阴影仅树区域,但不是所有控制,如何解决这个问题?(使所有控件都被遮蔽)

4

2 回答 2

0

这只是一种效果,但重要的是它禁用了整个控件。事实上,例如,如果您尝试,滚动条也会被禁用。但是你可以尝试使用一个肮脏的技巧来达到这个效果:

public class CostumizedTreeView : TreeView {
    Color defaultBackColor;
    public CostumizedTreeView( ) {
        defaultBackColor = BackColor;
    }

    public void Enable( bool Enabled ) {
        this.Enabled = Enabled;

        if ( !Enabled )
            BackColor = Color.LightGray;
        else
            BackColor = defaultBackColor;
    }
}

当被禁用时实现这一点:

在此处输入图像描述


否则,您可以使用DevExpressTelerik Controls 创建您自己的自定义控件。更多信息请看这里

于 2012-09-09T21:42:37.607 回答
0

关于什么:

.... Form()
{
this.InitializeComponent();

treeView1.EnabledChanged += (s, o) =>
{
    treeView1.BackColor = treeView1.Enabled ? Color.White : SystemColors.Control;
};

....

}
于 2012-09-10T01:33:29.310 回答