我是这样写的:
this.myTreeView.FullRowSelect = true;
this.myTreeView.Size = new System.Drawing.Size(170, 300);
当我使用这个属性时myTreeView.Enabled = false
,它变成了这样:
阴影仅树区域,但不是所有控制,如何解决这个问题?(使所有控件都被遮蔽)
这只是一种效果,但重要的是它禁用了整个控件。事实上,例如,如果您尝试,滚动条也会被禁用。但是你可以尝试使用一个肮脏的技巧来达到这个效果:
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;
}
}
当被禁用时实现这一点:
否则,您可以使用DevExpress或Telerik Controls 创建您自己的自定义控件。更多信息请看这里。
关于什么:
.... Form()
{
this.InitializeComponent();
treeView1.EnabledChanged += (s, o) =>
{
treeView1.BackColor = treeView1.Enabled ? Color.White : SystemColors.Control;
};
....
}