TreeView的CheckBoxes设置为 False,然后使用 StateImageIndex 来为每个节点设置状态图标,不需要CheckBox的节点,将StateImageIndex设置为 -1。
可否说仔细点。。小小再提示下。谢了
@彬彬@科比: 把 TreeView 的 CheckBoxes 设置为 False 会吗?
在 TreeView 上添加 TreeNode 会吗?
把添加的 TreeNode 的 StateImageIndex 设置为 -1,1,2会吗?
@Launcher:
this.treeView1.CheckBoxes = false;
TreeNode node = new TreeNode();
node.StateImageIndex = 2;
node.ImageIndex = 0;
this.treeView1.Nodes.Add(node);??这样??嘛。不行哦
@彬彬@科比: 不行就算了吧。
@Launcher: 晕。交流而已。那么心急火爆干嘛!
@彬彬@科比: 我都告诉你通过 StateImageIndex 来设置自定义状态图标了,你就不能再查下 MSDN 吗?
然后我还得猜测你肯定忘记为 TreeView 指定 StateImageList 属性了,是这样吧!
http://msdn.microsoft.com/en-us/library/system.windows.forms.treenode.stateimageindex.aspx
@彬彬@科比: 我估计你还会问我怎么知道哪个TreeNode是Checked呢?这个好办,你自己为每个 TreeNode 建立一个对应的数据结构,然后付给 TreeNode 的 Tag,然后通过这个数据结构来记录 TeeNode 是否Checked。你得通过鼠标点击到状态图标上来判断是否设置Check状态。这样你可以实现三态选择树控件。
@Launcher: 麻烦你看下这个。。我是这么弄的。能选中。但是再选一次就不行了。
@Launcher: 看否看看我的DEMO,谢了。我修改了问题了
@彬彬@科比:
if (e.Node.StateImageIndex == 1)
e.Node.StateImageIndex = 0;
else if (e.Node.StateImageIndex == 0)
e.Node.StateImageIndex = 1;
如果仅仅从语法上你分析不出逻辑,那么你可以通过单步调试的方式来观察你的代码执行流程。
@Launcher: 谢了兄弟。分给你,是我搞错了。