vb.net - 从 CombO 填充 Treeview
问题描述
我有 5 个组合框。每个都有无限数量的元素,有些是空的。我想要的是将名称 ComboBox 添加到 Treeview 作为“父级”。并将 ComboBox 中的项目列为“父级”中的“子级”。. 如果 ComboBox 为空,则它被忽略。
我想要一个适用于 FrameWork 3 的代码
我的代码
我的代码
Public Sub TREEVIEWFILL()
TreeView1.Nodes.Clear()
If Com_A.SelectedIndex > -1 Then
TreeView1.Nodes.Add(Com_A.Text, Com_A.Text)
For i = 0 To Com_A.Items.Count - 1
TreeView1.Nodes.Add(Com_A.Text, Com_A.Items(i).ToString)
Next
End If
If Com_B.SelectedIndex > -1 Then
TreeView1.Nodes(Com_A.Text).Nodes.Add(Com_B.Text, Com_B.Text)
For i = 0 To Com_B.Items.Count - 1
TreeView1.Nodes(Com_A.Text).Nodes.Add(Com_B.Text, Com_B.Items(i).ToString)
Next
End If
If Com_C.SelectedIndex > -1 Then
TreeView1.Nodes(Com_A.Text).Nodes(Com_B.Text).Nodes.Add(Com_C.Text, Com_C.Text)
For i = 0 To Com_C.Items.Count - 1
TreeView1.Nodes(Com_A.Text).Nodes(Com_B.Text).Nodes.Add(Com_C.Text, Com_C.Items(i).ToString)
Next
End If
End Sub
解决方案
根据您的评论,您可以执行以下操作:
' +
Imports System.Linq
Public Sub TREEVIEWFILL()
Dim cboxes = {Com_A, Com_B, Com_C, Com_D, Com_F}
TreeView1.BeginUpdate()
TreeView1.Nodes.Clear()
For Each cmb In cboxes.Where(Function(x) x.Items.Count > 0)
Dim node As New TreeNode(cmb.Name,
cmb.Items.Cast(Of String).
Select(Function(x) New TreeNode(x)).ToArray())
TreeView1.Nodes.Add(node)
Next
TreeView1.EndUpdate()
End Sub
或不使用LINQ
:
Public Sub TREEVIEWFILL()
Dim cboxes = {Com_A, Com_B, Com_C, Com_D, Com_F}
TreeView1.BeginUpdate()
TreeView1.Nodes.Clear()
For Each cmb In cboxes
If cmb.Items.Count > 0 Then
Dim parent As New TreeNode(cmb.Name)
For Each item As String In cmb.Items
parent.Nodes.Add(item, item)
Next
TreeView1.Nodes.Add(parent)
End If
Next
TreeView1.EndUpdate()
End Sub
注意,当你调用方法来填充树时,你应该调用.BeginUpdate()
and方法。.EndUpdate()
.Nodes.Add(..)
推荐阅读
- wpf - wpf中的多种样式
- mysql - 带分组的 SQL 子查询
- delphi - Delphi XE2 TCPServer 在午夜执行程序
- postgresql - Mac 中的 postgres 设置
- batch-file - 如何使用 7 zip 在另一台服务器上解压缩文件?
- ios - 调用委托后应用程序崩溃
- javascript - 当用户在弹出窗口之外单击以关闭它时返回滚动条
- javascript - 在另一个按钮上使用js调用onclick时如何防止下拉菜单关闭
- newline - tr (unix translate) 如何处理 ne 行?
- symfony - 添加自定义格式化程序 nelmio alice 的问题