首页 新闻 会员 周边

winform牛人进

0
悬赏园豆:5 [已解决问题] 解决于 2013-01-05 18:12

怎样使treeview控件部分显示checkbox。部分不显示

彬彬@科比的主页 彬彬@科比 | 初学一级 | 园豆:43
提问于:2013-01-05 16:38
< >
分享
最佳答案
0

TreeView的CheckBoxes设置为 False,然后使用 StateImageIndex 来为每个节点设置状态图标,不需要CheckBox的节点,将StateImageIndex设置为 -1。

收获园豆:5
Launcher | 高人七级 |园豆:45045 | 2013-01-05 16:47

可否说仔细点。。小小再提示下。谢了

彬彬@科比 | 园豆:43 (初学一级) | 2013-01-05 16:55

@彬彬@科比: 把 TreeView 的 CheckBoxes 设置为 False 会吗?

在 TreeView 上添加 TreeNode 会吗?

把添加的 TreeNode 的 StateImageIndex 设置为 -1,1,2会吗?

Launcher | 园豆:45045 (高人七级) | 2013-01-05 17:02

@Launcher: 

               this.treeView1.CheckBoxes = false;

               TreeNode node = new TreeNode();
                node.StateImageIndex = 2;
                node.ImageIndex = 0;
                this.treeView1.Nodes.Add(node);??这样??嘛。不行哦

彬彬@科比 | 园豆:43 (初学一级) | 2013-01-05 17:08

@彬彬@科比: 不行就算了吧。

Launcher | 园豆:45045 (高人七级) | 2013-01-05 17:09

@Launcher: 晕。交流而已。那么心急火爆干嘛!

彬彬@科比 | 园豆:43 (初学一级) | 2013-01-05 17:16

@彬彬@科比: 我都告诉你通过 StateImageIndex 来设置自定义状态图标了,你就不能再查下 MSDN 吗?

然后我还得猜测你肯定忘记为 TreeView 指定  StateImageList 属性了,是这样吧!

http://msdn.microsoft.com/en-us/library/system.windows.forms.treenode.stateimageindex.aspx

Launcher | 园豆:45045 (高人七级) | 2013-01-05 17:29

@彬彬@科比: 我估计你还会问我怎么知道哪个TreeNode是Checked呢?这个好办,你自己为每个 TreeNode 建立一个对应的数据结构,然后付给 TreeNode 的 Tag,然后通过这个数据结构来记录 TeeNode 是否Checked。你得通过鼠标点击到状态图标上来判断是否设置Check状态。这样你可以实现三态选择树控件。

Launcher | 园豆:45045 (高人七级) | 2013-01-05 17:32

@Launcher: 麻烦你看下这个。。我是这么弄的。能选中。但是再选一次就不行了。

彬彬@科比 | 园豆:43 (初学一级) | 2013-01-05 17:55

@Launcher: 看否看看我的DEMO,谢了。我修改了问题了

彬彬@科比 | 园豆:43 (初学一级) | 2013-01-05 17:57

@彬彬@科比: 

 if (e.Node.StateImageIndex == 1)
                e.Node.StateImageIndex = 0;
else if (e.Node.StateImageIndex == 0)
                e.Node.StateImageIndex = 1;

如果仅仅从语法上你分析不出逻辑,那么你可以通过单步调试的方式来观察你的代码执行流程。

Launcher | 园豆:45045 (高人七级) | 2013-01-05 18:05

@Launcher: 谢了兄弟。分给你,是我搞错了。

彬彬@科比 | 园豆:43 (初学一级) | 2013-01-05 18:11
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册