あなたの場合TreeNode、プロパティがないため、簡単/迅速な方法はありませんEnabled。この機能を自分で追加する必要があります。私はTriStateTreeViewコードを見て、あなたを助けるためにいくつかの発言をすることができます。
描画部分は簡単になります。コンストラクターにあります。
case 0: CheckBoxRenderer.DrawCheckBox(chkGraphics, new Point(0, 1), CheckBoxState.UncheckedNormal);
break;
case 1: CheckBoxRenderer.DrawCheckBox(chkGraphics, new Point(0, 1), CheckBoxState.CheckedNormal);
break;
case 2: CheckBoxRenderer.DrawCheckBox(chkGraphics, new Point(0, 1), CheckBoxState.MixedNormal);
break;
StateImageListこの部分は、すべての可能な状態のビットマップを格納するを埋めます。、、、およびにすでに存在する他の3つの画像を追加する必要がありSystem.Windows.Forms.VisualStylesます。CheckBoxState.UncheckedDisabledCheckBoxState.CheckedDisabledCheckBoxState.MixedDisabled
CheckedDisabled次に、たとえばノードの外観に影響を与えたい場合は、次のようStateImageIndexにTreeNodeプロパティのを変更する必要があります。myNode.StateImageIndex = (int)CheckedState.CheckedDisabled;
より複雑な部分は、ロジックの実装です。からのTriStateTreeView5つのイベントをオーバーライドするだけWindows.Forms.TreeViewです。新しい機能を処理するには、それらを変更する必要があります。おそらく上部にこのようなものを追加する必要があります:
if(e.Node.StateImageIndex == (int)CheckedState.CheckedDisabled || ... ) return;しかし、すべての場合にそれほど単純ではない可能性があるため、すべてのメソッドを確認してください。