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;
    }
}

そして、これを無効にすると:

ここに画像の説明を入力


それ以外の場合は、 DevExpressまたはTelerikコントロールを使用して、独自のカスタマイズされたコントロールを作成できます。詳細については、こちらをご覧ください

于 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 に答える