vb.net xml 和treeview你的xml文字有错误,正确的如下:
?xml version="1.0"?
grouplist
group name="1"
server name="1.1"/
server name="2.2"/
/group
group name="2"
server name="2.1"/
server name="2.2"/
/group
/grouplist
以下是在vs2008下调试成功
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim tvw As TreeView
Dim x As New Xml.XmlDocument
Dim nd As Xml.XmlNode
Dim pcnd As TreeNode
Dim I As Integer
Dim II As Integer
tvw = New TreeView
tvw.Parent = Me
tvw.SetBounds(10, 10, 300, 300)
x.Load("该处为xml文件路径") '如 C:\abc.xml
For I = 1 To x.DocumentElement.ChildNodes.Count
nd = x.DocumentElement.ChildNodes(I - 1)
pcnd = tvw.Nodes.Add("G"I.ToString, nd.Attributes(0).Value)
For II = 1 To nd.ChildNodes.Count
pcnd.Nodes.Add(nd.ChildNodes(II - 1).Attributes(0).Value)
Next
pcnd.Expand()
Next
End Sub
End Class
VB.NET TREEVIEW获取父节点软糖来回答罗 。
treenode只有text和name两个string属性 。
所以给你写的函数是返回string数组,如需要可自行转换类型Integer
Private Function GetParents(ByVal node As TreeNode) As String()
Dim list As New List(Of String)
Do Until node.Parent Is Nothing
node = node.Parent
list.Add(node.Text)
Loop
Return list.ToArray()
End Function
下面是Listbox1的测试代码,把父节点都添加到Listbox1(在Click后)
Private Sub ListBox1_Click(sender As Object, e As EventArgs) Handles ListBox1.Click
Dim k = GetParents(TreeView1.Nodes(0).Nodes(0).Nodes(0).Nodes(0))
ListBox1.Items.AddRange(k)
End Sub
VB.NET中treeview的使用Nodes 集合包含分配给 TreeView 控件的所有 TreeNode 对象 。此集合中的树节点称作根树节点 。随后添加到根树节点上的任何树节点称作子节点 。由于每个 TreeNode 都可以包含其vb.net选择父结点他 TreeNode 对象的集合vb.net选择父结点 , 您可能会在循环访问集合时觉得很难确定自己在树结构中的位置 。您可以使用 PathSeparator 字符串值来分析 TreeNode.FullPath 字符串,以确定 TreeNode 标签的起始和终止位置 。
可以在树节点旁显示图像,方法是将一个 ImageList 分配给 ImageList 属性,然后通过引用 Image 在 ImageList 中的索引值来分配该 Image 。使用下面的属性分配图像:
将 ImageIndex 属性设置为当树节点未选定时所显示的 Image 的索引值 。
将 SelectedImageIndex 属性设置为当树节点被选定时要显示的 Image 的索引值 。
ImageIndex 和 SelectedImageIndex 属性值所引用的图像是所有分配给 Nodes 集合的树节点显示的默认图像 。每个树节点都可以通过设置 TreeNode.ImageIndex 和 TreeNode.SelectedImageIndex 属性来取代默认的图像 。
树节点可以展开,以显示下一级子树节点 。用户可以在 TreeNode 旁显示加号 ( ) 按钮时通过单击加号 ( ) 按钮来展开 TreeNode,或者可以通过调用 TreeNode.Expand 方法来展开 TreeNode 。若要展开 Nodes 集合中的所有子树节点级别,请调用 ExpandAll 方法 。若要折叠子 TreeNode 级别 , 可以调用 TreeNode.Collapse 方法,也可以在 TreeNode 旁显示减号 (-) 按钮时按减号 (-) 按钮 。还可以通过调用 TreeNode.Toggle 方法在展开和折叠状态之间切换 。
树节点可以选择性地显示复选框 。若要显示复选框,请将 TreeView 的 CheckBoxes 属性设置为 true 。对于处于选中状态的树节点,Checked 属性设置为 true 。
注意
从 BeforeCheck 或 AfterCheck 事件内设置 TreeNode.Checked 属性将导致该事件被多次引发并可能产生意外行为 。例如 , 您可以在递归更新子节点时在事件处理程序中设置 Checked 属性,以便用户不必逐个展开并选中每个节点 。如果未将 TreeViewEventArgs 的 Action 属性设置为 TreeViewAction.Unknown,则若要防止该事件被多次引发,需为仅执行递归代码的事件处理程序添加逻辑 。有关如何进行此操作的示例,请参见 AfterCheck 或 BeforeCheck 事件的示例部分 。
通过设置 TreeView 控件的一些显示和样式属性,可以更改此控件的外观 。如果将 ShowPlusMinus 设置为 true,则会分别在每个可展开或折叠的 TreeNode 旁显示加号或减号按钮 。如果将 ShowRootLines 属性设置为 true , TreeView 则会显示联接所有根树节点之间的连线 。通过将 ShowLines 属性设置为 true,可以显示子树节点与其根节点之间的连线 。如果将 HotTracking 属性设置为 true,那么当鼠标指针移过树节点标签时,树节点标签的外观将发生变化 。如果启用热跟踪,树节点标签将具有超链接的外观 。也可以完全自定义 TreeView 控件的外观 。若要执行此操作,请将 DrawMode 属性设置为 TreeViewDrawMode.Normal 以外的值并处理 DrawNode 事件 。
注意
在运行时设置 CheckBoxes、Scrollable、ImageIndex 和 SelectedImageIndex 属性时,将重新创建 TreeView 句柄(请参见 Control.RecreateHandle)以更新控件的外观 。这将折叠除选定的 TreeNode 之外的所有树节点 。
下面的代码示例阐释了如何使用 TreeView 控件 。
Private Sub InitializeTreeView()
treeView1.BeginUpdate()
treeView1.Nodes.Add("Parent")
treeView1.Nodes(0).Nodes.Add("Child 1")
treeView1.Nodes(0).Nodes.Add("Child 2")
treeView1.Nodes(0).Nodes(1).Nodes.Add("Grandchild")
treeView1.Nodes(0).Nodes(1).Nodes(0).Nodes.Add("Great Grandchild")
treeView1.EndUpdate()
End Sub
From MSDN
vb.net 递归 vb.net 递归这种不要用递归,知道关键字长度,知道节数用判断就可以了,取前3位第一节,第二节取3个为父节点,取全部为第二节关键字,第三节取前6个为父节点,取全部为第三节关键字.
并没有要求培养字段vb.net选择父结点,查询时从len(ID)=3*N,每次循环时N都 1
select * from tablename where len(id)=3
select case N
case 1
treeview.node.add id,name
case 2
treeview.node(left(id,3)).node.add id,name
case 3
treeview.node(left(id,3)).node(left(id,6)).add id,name
end select
查询结果排个升序就不会存在这样的问题了,vb.net选择父结点你刚才说的那种,如果中间没有比001001001001001更短的关键字,那么就脱节,这种是不可能添加到treeview中.
递归一般用在不知道节数,没有关键字的情况,比如系统目录结构.
递归整个C盘目录:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
【vb.net选择父结点 vbnet select】Dim iDir As IO.Directory
Dim node As New TreeNode
'先把C盘添加到树中
TreeView1.Nodes.Clear()
node.ImageIndex = 0
node.Text = "本地磁盘 C:"
node.SelectedImageIndex = -1
TreeView1.Nodes.Add(node)
Dim i As Integer
'获取C:盘根目录下的文件夹
Dim str() As String = IO.Directory.GetDirectories("D:\")
For i = 0 To str.GetUpperBound(0)
'调用遍历过程
AddDirectory("C:", str(i), node)
Next
node = Nothing
iDir = Nothing
End Sub
Public Sub AddDirectory(ByVal strFatherPath As String, ByVal strPath As String, ByVal nodeFather As TreeNode)
Dim iDir As IO.Directory
'Dim iDirInfo As IO.DirectoryInfo
Dim i As Integer
Dim node As New TreeNode
'先添加本目录,从文件夹路径分析出文件夹名称
node.Text = Strings.Replace(strPath, strFatherPath"\", "", , 1)
'为单个节点指定节点未被选中时显示的图标
node.ImageIndex = 1
'为单个节点指定节点被选中时显示的图标
node.SelectedImageIndex = 2
nodeFather.Nodes.Add(node)
Application.DoEvents()
Try
Dim str() As String = IO.Directory.GetDirectories(strPath)
'遍历该目录的子文件夹
For i = 0 To str.GetUpperBound(0)
AddDirectory(strPath, str(i), node)
Next
Catch ex As Exception
Debug.WriteLine(ex.Message)
End Try
node = Nothing
iDir = Nothing
End Sub
VB.NET中如何把DataGridview中的数据,按数据父子关系添加到TreeView控件中?用数据集操作更加直接 。
具体来说 , 添加节点时指定节点KEY=ID(如果是数字ID前面加一个任意字母),并且把节点附加到父节点上(按上述规则添加很容易找到父节点),没有父节点则作为根节点 。
应该能够看出添加时是按层级添加的,即先添加父节点后子节点,数据集可以先按层级排序 。
VB.NET中怎么给TreeView的父节点添加相对应的子节点?求助各位!Public Class Form1
Dim node(5) As TreeNode
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Dim root As TreeNode
With TreeView1
.Nodes.Clear()
.ShowLines = True
.ShowPlusMinus = True
.ShowRootLines = True
root = .Nodes.Add("仓库") '增加根节点
.SelectedNode = root'在此根节点下添加子节点
For i = 1 To 6
node(i - 1) = .SelectedNode.Nodes.Add(i.ToString"号仓库")
Next
.ExpandAll()
End With
End Sub
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
If Val(TextBox1.Text) = 100 And Val(TextBox1.Text) = 699 Then
node(Val(TextBox1.Text) \ 100 - 1).Nodes.Add(TextBox1.Text)
End If
End Sub
Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
If Val(TextBox2.Text) = 1000000 And Val(TextBox2.Text) = 6999999 Then
For Each child As TreeNode In node(Val(TextBox2.Text) \ 1000000 - 1).Nodes
If child.Text = TextBox2.Text.Substring(1, 3) Then
child.Nodes.Add(TextBox2.Text)
Exit For
End If
Next
End If
End Sub
End Class
关于vb.net选择父结点和vbnet select的介绍到此就结束了 , 不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息 , 记得收藏关注本站 。
推荐阅读
- 如何转互联网新媒体运营,如何转互联网新媒体运营师
- 关于最新下载的信息
- 路由器怎么上网和安装,路由器安装上网方式
- 抖音可以直播的小号平台,抖音可以用小号直播吧
- go语言并行处理 go语言中控制并发数量的方法
- js按样式查找元素,js查找元素下标
- 软件设计毕业设计日志16则,软件毕业设计总结
- 卖摩托车模型的直播主播,直播卖摩托车平台哪个好
- 在mysql上怎么看到表 如何在mysql中查看表