[.NET] TreeView三态 + Directory Explorer

楼主: KawasumiMai (さあ、死ぬがいい)   2014-06-07 17:48:09
如题
好久没碰.net了...
目前正在尝试先用TreeView作目录
并且将CheckBox的属性打开让他可以被勾选
但是遇到两个问题
1.Checkbox只有双态
网络上找了不少tristate的方法
但是好像都要另外侦测click动作
真的没有比较简单的方法吗?
2.列出所有目录的动作极度缓慢
印象中VB6时代有个Path的物件
可以马上作一个档案浏览器
但是不知道为什么.net查到的档案浏览器需要用TreeView去作parse
而且更惨的是他一开始就要持续往下挖子目录来作出整颗树
所以光是一开始要打开就很麻烦了
如果只挖一层,add node的时候还要判定该目录是否有子目录
所以需要挖两层才能决定第一层是否可以被展开(有+号)
怎么会这么鸡肋?难不成是方法用错了吗?
有没有什么简单快速的方法可以作出一个很快就能初始化的目录浏览器
而且每个节点都有有三态勾选的选项(决定子目录里面是否全被勾选)
作者: GoalBased (Artificail Intelligence)   2014-06-07 19:01:00
什么叫作三态勾选? 勾和不勾不就两态吗?而且treeview会慢吗? 我是觉得还好,如果真想快,就自己写不要用.net里面的吧,不过我自己也是用treeview在做选单,像你说的多层稍为麻烦点,可能我自己用前端写一个会要改会比较快,不过目前能达到我需求就够了
楼主: KawasumiMai (さあ、死ぬがいい)   2014-06-07 19:17:00
勾 不勾 半勾(方框/灰色) 三态阿第三个是代表子目录是否全被勾选,这很常见吧?主要不是treeview变慢,而是印象中VB6的工具很快但是Treeview他要一层一层去挖,挖不完阿所以这种东西到了.net真的要自己写阿= =....
作者: GoalBased (Artificail Intelligence)   2014-06-07 20:16:00
window form有没有三态的checkbox我不确定但是web原生是没有的,想要的话要另外做你说的一层一层挖会慢 是因为资料量很大吗?之后你说的全选,通常都是勾选母node代表子node全选是说你有没有先google一下 treeview网络上的范例功能都满强大的,不过我自己是习惯自己刻
作者: Abbee (阿比)   2014-06-08 21:17:00
我觉得win98时代的档案总管很快,到xp win7就很慢,难怪win7一次也只显示点选的目录,建议你学win7
楼主: KawasumiMai (さあ、死ぬがいい)   2014-06-09 14:21:00
楼上的情况有想过,但是还没有解决TriState的问题然后你提到的显示目录,不只判定该层,实际上要让母层显示+号,就得事先判定是否有下一层了....再加上那个NodeMouseClick跟After/BeforeClick....前者甚至包含勾选的动作也算,整个就很鸡肋...
作者: GoalBased (Artificail Intelligence)   2014-06-09 21:23:00
tri 就自己做,想简单点就用下拉选单判断有下层会怎样吗? 就算几百个节点对速度也没有影响吧

Links booklink

Contact Us: admin [ a t ] ucptt.com