请教这个代码可以改成多列多值输入吗?
比如目录树第一级多值输入表第一列,第二级输入表第二列,
可以多选的下拉目录树
本节的任务是设计一个下图所示的下拉目录树,和之前的目录树不同,这个目录树可以选择多个值:
本节的内容可以参考CaseStudy目录下的文件:多选目录树.Table
实现方法很简单:
1、新建一个窗口,名为“窗口1”,窗口类型设置为“DropDownForm”。
2、窗口中插入一个TreeView(目录树)控件和一个Button(按钮),TreeView的"显示复选框"属性设置为True。
3、窗口的DropDownOpened事件设置为:
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
For
Each nd As WinForm.TreeNode In trv.AllNodes
nd.Checked = nms.Contains(nd.text)
Next
上述代码的目的在于每次打开下拉窗口的时候,都能自动勾选已经输入的项目。
注意这段代码不能设置在窗口的AfterLoad事件中,下拉窗口只有在第一次打开的时候,才会执行AfterLoad事件,而DropDownOpened每次打开下拉窗口都会执行。
4、确定按钮的代码设置为:
Dim
s As
String
Dim trv As WinForm.TreeView =
e.Form.Controls("TreeView1")
For
Each nd As WinForm.TreeNode In trv.AllNodes
If nd.Checked Then
s =
s &
"," &
nd.Text
End
If
Next
e.Form.DropDownBox.Value
= s.trim(",")
e.Form.DropDownBox.CloseDropdown
5、最后将项目事件AfterOpenProject的代码设置为:
Tables("表A").Cols("第一列").DropForm =
"窗口"