以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 目录树级联多列多值输入可以实现吗? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=113063) |
-- 作者:wsxslwr -- 发布时间:2018/1/8 14:10:00 -- 目录树级联多列多值输入可以实现吗? 请教这个代码可以改成多列多值输入吗? 比如目录树第一级多值输入表第一列,第二级输入表第二列, 可以多选的下拉目录树 本节的任务是设计一个下图所示的下拉目录树,和之前的目录树不同,这个目录树可以选择多个值: 本节的内容可以参考CaseStudy目录下的文件:多选目录树.Table 实现方法很简单: 1、新建一个窗口,名为“窗口1”,窗口类型设置为“DropDownForm”。 2、窗口中插入一个TreeView(目录树)控件和一个Button(按钮),TreeView的"显示复选框"属性设置为True。 3、窗口的DropDownOpened事件设置为: Dim
s As
String = e.Form.DropDownBox.Value 上述代码的目的在于每次打开下拉窗口的时候,都能自动勾选已经输入的项目。 4、确定按钮的代码设置为: Dim
s As
String
5、最后将项目事件AfterOpenProject的代码设置为: |
-- 作者:有点甜 -- 发布时间:2018/1/8 14:35:00 --
[此贴子已经被作者于2018/1/8 14:34:38编辑过]
|
-- 作者:有点甜 -- 发布时间:2018/1/8 14:36:00 -- 确定按钮的代码设置为: Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1") For Each nd As WinForm.TreeNode In trv.AllNodes
|
-- 作者:wsxslwr -- 发布时间:2018/1/8 22:30:00 -- 谢谢老师,果然管用,非常感谢!也能否扩展三列,四列。只是第二、三、四列没有记忆,也就是打开下拉窗口的时候,第一列都能自动勾选已经输入的项目。其他列没有自动勾选已经输入的项目。如果其他列都能记忆勾选项目,就更好了!不知老师能否帮忙给个代码?! 窗口的DropDownOpened事件设置为: Dim
s As
String = e.Form.DropDownBox.Value 上述代码的目的在于每次打开下拉窗口的时候,都能自动勾选已经输入的项目。 |
-- 作者:有点蓝 -- 发布时间:2018/1/8 22:41:00 -- Dim s As String = e.Form.DropDownBox.Value Dim nms As new List(of String) Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1") If s > "" Then nms.AddRange(s.Split(",")) End If s = e.Form.DropTable.current("第二列") If s > "" Then nms.AddRange(s.Split(",")) End If For Each nd As WinForm.TreeNode In trv.AllNodes nd.Checked = nms.Contains(nd.text) Next
|