【发布时间】:2018-07-13 18:34:34
【问题描述】:
我正在使用 Visual Basic .NET 2013,我想知道在树视图中检查了哪些子节点。我不检查父节点,因为复选框仅在子节点中(我在父节点中禁用了复选框,因此它们不会出现)。
目前我正在使用我找到的一种解决方案:
Private Sub TreeView1_AfterCheck(sender As Object, e As TreeViewEventArgs) Handles TreeView1.AfterCheck
Dim childNodeCK As TreeNode = e.Node
If childNodeCK.Checked = True Then
If e.Node.Parent Is Nothing = False Then 'detects a Child Node
TextBox1.Text = TextBox1.Text & childNodeCK.Text
MessageBox.Show("Checked: " & childNodeCK.Text)
End If
End If
If childNodeCK.Checked = False Then
If e.Node.Parent Is Nothing = False Then
MessageBox.Show("Unchecked: " & childNodeCK.Text)
End If
End If
End Sub
但我想知道是否有其他解决方案,类似这样(以下代码没有显示任何内容,因为当我单击按钮运行它时,没有任何反应):
For Each childNode As System.Windows.Forms.TreeNode In TreeView1.Nodes
If childNode.Checked = True Then
MessageBox.Show(childNode.Text)
End If
Next
因为想法是单击一个按钮并获取当时检查的子节点的名称(文本)。所以我想我必须从头到尾一个一个地检查,如果检查了子节点然后执行一些代码。
【问题讨论】:
-
TreeView1.Nodes只为您提供树中的根节点。您必须指定父节点并使用其中的节点集合来检查您的子节点。还是您要求获取树中所有已检查的节点? -
感谢您的回答。我有 3 个根节点,每个根节点都有自己的子节点: -Root node #1 --Child node #1 --Child node #2 --Child node #3 -Root node #2 --Child node #1 - -子节点#2 -根节点#3 --子节点#1 --子节点#2 --子节点#3 我想检查树视图中存在的所有子节点。在我刚才详述的示例中,有 8 个子节点。所以我想获取树中所有被检查的节点。