- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
关于Winform下,获取Treeview中CheckBox选中项的技巧
背景今天,在做一个指纹管理平台的界面上,遇到了一些问题,因为公司的基础库中没有针对Winform平台的操作,所以在一个部门选择的场景中,关于如何获取部门TreeView中被选中的项目被难住了。所幸还有一个神器叫做搜索引擎,故谷歌一番,发现A下的这个问题很好解决,但是关于Winform平台下的类似问题,如凤毛麟角啊!当然,今天我也是查了很久,终于发现了两篇不错的文章,帮助我解决了这个问题,不敢独享,结合自己对使用其方法的心得,特意记录下来,并通过一个小例子和大家一起分享。问题是这样的有一个部门列表,多级的(或者说无限极),我们在Winform端列出来(这个很简单)后,需要对其进行部分的选择,然后通过一个按钮,提交选择好的部门,进入下一个业务操作场景,今天我遇到的问题就是,如何获取这个部门TreeView中,各个级别所选取的项目呢?如下图:在这里只是用一个例子来说明,所以就简单一点吧,如左图所示,我们的任务就是通过程序获取被选中的部门,将其信息送到下一个业务场景之中,在传统的A中,Web.UI下的Treeview控件提供了很方便的接口方法,用于获取被选中的项目,但是来到了Winform下,瞬间杯催……发现不能用A的思路来做这个事情后,我立马谷歌了一下,发现如下这篇文章,说的很不错,基本上解决了我遇到的问题,原文地址如下:“/suyan010203/archive/2010/05/22/1741595.html时空隧道”我总结了一下,原作者的大概思路应该如下:图1-简单的流程图示意解决问题:在页面(窗体)申明两个变量:第一个是用于存放被选项目的,文中是StringBuilder对象。第二个是一个Tag标签,按照原文的话就是“我们在TreeView的结点中用Tag来附加了CheckBox是否选中的标识信息”,字符串对象。用代码来描述就是如下形式:string tag = True;//Tag标签StringBuilder nodesTag;//容器接下来,我们就开始去处理AfterCheck事件,让程序能够“记住”我们选择过的项目。无论大家有没有看过那篇文章,其中提到过“树的递归算法”,关于算法,大家可以参考如下这个链接:/sjjg_sf/200712180927511193.htm点击穿越在了解完算法后,相信大家能离家如下一段的代码了吧:这里就照搬这位博友的code了遍历方法AfterCheck事件代码:treeView1_AfterCheck这个方法的调用时机应该是什么时候呢?对于我的场景来说,应该是再点击那个业务按钮之后,在之前,我们的AfterCheck事件代码唯一要做的事情就是如下图所示的一个流程:当我们点击业务按钮之后,为其添加如下代码即可:调用方法再好一点:到这里呢,按理说问题已经被解决完了。我们获取到了选中的部门,但是,按照常规来说,应该“选中节点的时候,如果节点存在子节点,可以选中全部的子节点;如果取消一个节点的选中状态,当前节点同时又存在父节点的话,就取消父节点的选中状态”,怎么办呢?我觉得自己很懒,“搜”的一下,给大家链上一篇文章,我觉得写的很不错啊,如下:/virusswb/archive/2008/07/01/1233218.html点此穿越好啦,根据原文的意思,我们结合之前的获取选中状态的代码,修改如下:新的AfterCheck新的CheckAllChildNodes方法:根据博友Flynn2009的提示,应该注意代码需要有修改,如下:node.Tag = nodeChecked ? (bool)tag : null;新的CheckAllChildNodes结束:好啦,在这里呢,我们就完成了获取Treeview中CheckBox选中状态的小例子,并且呢,还人性化的设置了一个关于父子选项的效果。文章就到这里为止吧,希望能给大家带来收获。欢迎拍砖!!!最后附上本文的示例项目代码:Vs2008+.Net 2.0/longqi293/TreeView.zip点击获取
您可能关注的文档
- 保利达沈阳临河项目补充方案.ppt
- 保安部试题.doc
- 保定市太阳城生态老年公寓计划书.doc
- 保护环境绿 色.ppt
- 保洁、保绿员例行培训参考大纲.docx
- 保税加工货物通关流程.ppt
- 保温锚栓合格证和检测报告.doc
- 保证LEED认证措施.doc
- 保温 改性聚苯板 真金板介绍.ppt
- 保险的好处.doc
- 岸基供电系统 第4部分:工频电源.pdf
- 人教版八下英语Unit 5 What were you doing when the rainstorm came_测试卷.docx
- 热带作物品种区域试验技术规程 木薯.pdf
- 草原防火阻隔带建设技术规程.pdf
- 渔用气胀救生筏技术要求和试验方法-.pdf
- 浙江省杭州市2024-2025学年八年级下学期期中考试英语试卷(含答案).docx
- 重庆市渝北区六校联盟2024-2025学年九年级下学期期中教学大练兵语文试卷.docx
- 食品安全-花椒籽油 (2).pdf
- 2025年海博思创分析报告:储能集成“小巨人”,国内外业务进展可期.pdf
- 地理标志产品 宽城板栗.pdf
文档评论(0)