网站建设资讯

NEWS

网站建设资讯

包含vb.net文件树的词条

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

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

目前创新互联已为1000+的企业提供了网站建设、域名、网页空间、网站托管、企业网站设计、长葛网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

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如何打开ocx

1.单击“工具→选择工具箱项”菜单项,这时会弹出一个名为“选择工具箱项”的对话框。

2.单击位于右方的“浏览”按钮或按“Alt+B”键,这时会弹出一个名为“打开”的对话框。

3.选择你想要的ocx控件,单击“打开”按钮

4.在你所选择的那个列表框项上打勾,按确定按钮

VB.net如何动态获取菜单栏中的菜单名并用树型表示

添加:(先在加一个contextMenu,再它的添加子菜单的click事件编程)

Try

’使TreeView可以被编辑

TreeView1.LabelEdit = True

‘判断你是不是选定的是不可编辑的节点,我这里工种节点不可以被编辑,只有工种下级的

各个工种名称可以被编辑

If Trim(TreeView1.SelectedNode.Text) = "工种" Then

‘添加节点

AddNode = New TreeNode("请输入新工种名字")

TreeView1.SelectedNode.Nodes.Add(AddNode)

TreeView1.ExpandAll()

AddNode.BeginEdit()

TreeView1.LabelEdit = True

NodeAdded = True

End If

Catch err As Exception

MsgBox(err.ToString)

End Try

删除与添加类似,只是如果你的节点名字从其他处(如数据库)得来,那么你还需要更新数据库

编辑:

Private Sub TreeView1_BeforeLabelEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.NodeLabelEditEventArgs) Handles TreeView1.BeforeLabelEdit

TreeView1.LabelEdit = True ‘使可以编辑

AddNode = TreeView1.SelectedNode

End Sub

Private Sub TreeView1_AfterLabelEdit(ByVal sender As Object, ByVal e As System.windows.Forms.NodeLabelEditEventArgs) Handles TreeView1.AfterLabelEdit

Try

‘此时你改完了节点名字

TreeView1.SelectedNode.EndEdit(True)

If e.Label Is Nothing Then

'do nothing

ElseIf e.Node.Text = "工种" Then ‘工种不能改

e.CancelEdit() = True

‘e.Node.Text ,e.Label.ToString 一个是改前的名字一个是该后的名字,具体哪个对

哪个请查MSDN

ElseIf Trim(e.Node.Text) "工种" And e.Node.Text e.Label.ToString Then

If MsgBox("此操作会导致当前工种中的所有人员的工种都被更改,是否确定?", MsgBoxStyle.YesNo + MsgBoxStyle.Information, "警告") = MsgBoxResult.Yes Then

。。。。 ‘我的更改

MsgBox("更改成功!", MsgBoxStyle.OKOnly, "提示")

'Call InitTree() ‘有时要重新把treeview初始化一遍,视需求定

End If

End If

Catch err As Exception

MsgBox(err.ToString)

End Try

End Sub

其他:

挡treeview得到焦点时你可以使用ContextMenu,反之ContextMenu禁用

Private Sub TreeView1_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TreeView1.GotFocus

TreeView1.ContextMenu = ContextMenu1

End Sub

Private Sub TreeView1_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TreeView1.LostFocus

TreeView1.ContextMenu = Nothing

End Sub

注意:这里没有在ContextMenu菜单添加“更改”项,而是直接更改:即左键单击节点表示

选中,再单击一下就可以编辑了,更改之后单击他处就完成更改,和你在windows中更改文

件名字相似。

vb.net 磁盘文件列表,界面如图,在.net下如何实现?

预先准备三个图标文件,用于树型控件中显示磁盘符号和文件夹的图像之用。

1、窗体上添加控件如下:

组合框控件 ComboBox1,树型控件 TreeView1,列表框控件 ListBox1,图像列表控件 ImageList1。

选中TreeView1,设置其ImageList属性为ImageList1。

2、设置属性

选中图像列表控件 ImageList1,在属性窗口里,选中属性Images,单击三个小点按钮,出现图像集合编辑器窗口,单击[添加按钮],一一把准备好的图标文件进行添加,注意先后次序,如果不符合要求可以通过上下移动按钮重新改变次序。完成后单击[确定]。

运行图如下:

完整代码如下:

Imports System.IO

Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

'添加系统所有磁盘目录符号

For Each MyDrive As String In Environment.GetLogicalDrives()

ComboBox1.Items.Add(MyDrive)

Next

'显示第一个磁盘符号

ComboBox1.Text = ComboBox1.Items(0)

End Sub

'递归过程添加目录树

Public Sub AddDirectory(ByVal strFatherPath As String, ByVal strPath As String, ByVal nodeFather As TreeNode)

Dim i As Integer

Dim Mynode As New TreeNode

'先添加本目录

Mynode.Text = Strings.Replace(strPath, strFatherPath  "\", "", , 1)

'为节点指定未被选中时显示的图标

Mynode.ImageIndex = 1

'为节点指定被选中时显示的图标

Mynode.SelectedImageIndex = 2

nodeFather.Nodes.Add(Mynode)

Application.DoEvents()

Try

Dim str() As String = Directory.GetDirectories(strPath)

'递归遍历该目录的子文件夹

For i = 0 To str.GetUpperBound(0)

AddDirectory(strPath, str(i), Mynode)

Next

Catch ex As Exception

Debug.WriteLine(ex.Message)

End Try

Mynode = Nothing

End Sub

'根据给出的盘符添加目录树

Private Sub AddRootDirectory(ByVal DiscSymbol As String)

Dim Nynode As New TreeNode

'先把磁盘盘符添加到树中

TreeView1.Nodes.Clear()

Nynode.ImageIndex = 0

Nynode.Text = DiscSymbol

Nynode.SelectedImageIndex = -1

TreeView1.Nodes.Add(Nynode)

Dim i As Integer

'获取磁盘根目录下的文件夹

Dim str() As String = Directory.GetDirectories(DiscSymbol  "\")

For i = 0 To str.GetUpperBound(0)

'调用递归过程遍历该文件夹里的所有子文件夹,并添加到树型控件

AddDirectory(DiscSymbol, str(i), Nynode)

Next

Nynode = Nothing

End Sub

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged

'根据磁盘符号的变更,显示根目录里的文件

ListBox1.Items.Clear()

For Each MyFile As String In System.IO.Directory.GetFiles(ComboBox1.Text)

ListBox1.Items.Add(MyFile)

Next

'根据磁盘符号的变更,重新显示目录树

Dim DiscSymbol As String

DiscSymbol = Microsoft.VisualBasic.Left(ComboBox1.Text, Len(ComboBox1.Text) - 1)

Call AddRootDirectory(DiscSymbol)

End Sub

'递归过程根据子目录寻找上级目录名--从而构成完整的目录路径

Private Sub AllPath(ByVal ThisNode As TreeNode, ByRef MyPathName As String)

If ThisNode.Level  1 Then

'该节点层数大于1,其父节点不是磁盘根目录

MyPathName = ThisNode.Parent.Text  "\"  MyPathName

Dim MyNode As TreeNode = ThisNode.Parent

Call AllPath(MyNode, MyPathName)

Else

'该节点层数等于1,其父节点就是磁盘根目录

MyPathName = ComboBox1.Text  MyPathName

End If

End Sub

Private Sub TreeView1_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterSelect

'为了搜索选中的节点对应目录的文件,需要组成全路径

Dim MyAllPathName As String = TreeView1.SelectedNode.Text

Dim MyNode As TreeNode = TreeView1.SelectedNode

If TreeView1.SelectedNode.Level = 0 Then

'如果选中的是根节点

MyAllPathName = ComboBox1.Text

Else

'如果选中的是非根节点,调用递归过程组成全路径

Call AllPath(MyNode, MyAllPathName)

MyAllPathName = MyAllPathName  "\"

End If

'根据路径,搜索文件名并显示

ListBox1.Items.Clear()

For Each MyFile As String In System.IO.Directory.GetFiles(MyAllPathName)

ListBox1.Items.Add(MyFile)

Next

End Sub

End Class


网站栏目:包含vb.net文件树的词条
文章源于:http://cdweb.net/article/hicdih.html