重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

vb.net树结构,c#树结构

vb.net treeview 几个问题

这种不要用递归,知道关键字长度,知道节数用判断就可以了,取前3位第一节,第二节取3个为父节点,取全部为第二节关键字,第三节取前6个为父节点,取全部为第三节关键字.

成都创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都做网站、网站制作、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的南和网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

并没有要求培养字段,查询时从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

查询结果排个升序就不会存在这样的问题了,你刚才说的那种,如果中间没有比001001001001001更短的关键字,那么就脱节,这种是不可能添加到treeview中.

递归一般用在不知道节数,没有关键字的情况,比如系统目录结构.

原文:

如何用vb处理树形结构

树状结构使用treeview实现,控件添加方法:右击“工具箱”-“部件”-microsoft windows common controls 6.0-确定,应用

下面是简单的添加删除方法,

Option Explicit

‘添加项目

Private Sub Command1_Click()

Dim nodx As Node

Set nodx = TreeView1.Nodes.Add(, , "zf", "紫风无痕关系(双击收起)")

Set nodx = TreeView1.Nodes.Add("zf", tvwChild, "zfwife", "老婆")

Set nodx = TreeView1.Nodes.Add("zf", tvwChild, "zflover", "情人")

Set nodx = TreeView1.Nodes.Add("zf", tvwChild, "zffriend", "朋友")

Set nodx = TreeView1.Nodes.Add("zfwife", tvwChild, "lp1", "大老婆")

Set nodx = TreeView1.Nodes.Add("zfwife", tvwChild, "lp2", "二老婆")

Set nodx = TreeView1.Nodes.Add("zfwife", tvwChild, "lp3", "三老婆")

Set nodx = TreeView1.Nodes.Add("zfwife", tvwChild, "lp4", "四老婆")

Set nodx = TreeView1.Nodes.Add("zfwife", tvwChild, "lp5", "五老婆")

Set nodx = TreeView1.Nodes.Add("zflover", tvwChild, "qr1", "1号情人")

Set nodx = TreeView1.Nodes.Add("zflover", tvwChild, "qr2", "2号情人")

Set nodx = TreeView1.Nodes.Add("zflover", tvwChild, "qr3", "3号情人")

Set nodx = TreeView1.Nodes.Add("zffriend", tvwChild, "py1", "张三")

Set nodx = TreeView1.Nodes.Add("zffriend", tvwChild, "py2", "李四")

Set nodx = TreeView1.Nodes.Add("zffriend", tvwChild, "py3", "王麻子")

Set nodx = TreeView1.Nodes.Add("py1", tvwChild, "pylp1", "张三的老婆")

Set nodx = TreeView1.Nodes.Add("py1", tvwChild, "pylp2", "张三的孩子")

nodx.EnsureVisible

End Sub

'删除代码

Private Sub Command2_Click()

MsgBox ("将要删除" TreeView1.SelectedItem.Text)

TreeView1.Nodes.Remove (TreeView1.SelectedItem.Index)

End Sub

VB.net怎么制作树形菜单啊?

你说的“树形菜单”是指下拉菜单(可以有子菜单)吗?如果是,VB.net提供了MenuStrip控件,在工具箱里能找到,直接就在对应位置打字就可以了,完全是“所见即所得”。

vb.net从数据库读取信息填充treeview做成层次目录怎么做

给你一段我曾经写的代码,主要是生成TreeView的节点!有什么不懂的地方你就提!

Public Sub InitializeTreeView(ByVal strvXL As TreeView, ByVal vrsRecordTwo As DataSet)

Dim treBaseNodeOne As TreeNode

Dim treBaseNodeTwo As TreeNode

Dim strDWDM As String

m_rsRecordTwo = g_clsSybase.SelectSC_PD_SBCSB1()

'查找供电局信息

g_clsSybase.SelectRS_ZZJG_ZZJGDMB(m_rsRecordOne)

'添加根节点

Do While m_rsRecordOne.Read

strDWDM = m_rsRecordOne.GetString(0) '获取单位代码

treBaseNodeOne = New TreeNode

treBaseNodeOne.Text = m_rsRecordOne.GetString(1).Trim() '获取单位名称

treBaseNodeOne.Name = m_rsRecordOne.GetString(1)

treBaseNodeOne.Tag = ""

strvXL.Nodes.Add(treBaseNodeOne)

'添加树结构第二层

Dim drsTwo() As DataRow

drsTwo = m_rsRecordTwo.Tables(0).Select("SSDW='" strDWDM "' and SC__XLBM is null")

For Each dr As DataRow In drsTwo

treBaseNodeTwo = New TreeNode

treBaseNodeTwo.Text = dr.Item("XLMC").ToString.Trim

treBaseNodeTwo.Name = dr.Item("XLMC")

treBaseNodeTwo.Tag = dr.Item("XLBM")

treBaseNodeOne.Nodes.Add(treBaseNodeTwo)

Next

Loop

m_rsRecordOne.Close()

End Sub

VB.NET中treeview的使用

Nodes 集合包含分配给 TreeView 控件的所有 TreeNode 对象。此集合中的树节点称作根树节点。随后添加到根树节点上的任何树节点称作子节点。由于每个 TreeNode 都可以包含其他 TreeNode 对象的集合,您可能会在循环访问集合时觉得很难确定自己在树结构中的位置。您可以使用 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树结构,c#树结构
文章起源:http://cqcxhl.com/article/hegpcc.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP