私はこのように書きました:
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コントロールを使用して、独自のカスタマイズされたコントロールを作成できます。詳細については、こちらをご覧ください。
どうですか:
.... Form()
{
this.InitializeComponent();
treeView1.EnabledChanged += (s, o) =>
{
treeView1.BackColor = treeView1.Enabled ? Color.White : SystemColors.Control;
};
....
}