189 8069 5689

vb.net树型控件 vb树视图控件

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

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

公司主营业务:成都做网站、成都网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联公司推出大渡口免费做网站回馈大家。

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中的treeview控件

''' summary

''' 加入菜单子节点

''' /summary

''' param name="tbMenu"菜单表/param

''' param name="tvNode"父节点/param

''' remarks/remarks

Private Sub AddNode(ByVal tbMenu As DataTable, ByVal tvNode As TreeNode)

Dim myRow As DataRow() = tbMenu.Select(String.Format("PRMENUID = '{0}'", tvNode.NodeID), "SORTORDER")‘查询子菜单,按SORTORDER字段排序

Dim strURL As String = String.Empty‘菜单链接

For Each DataRow In myRow’循环所有子菜单

Dim MainMenuNode As TreeNode = New TreeNode() With {.Text = DataRow.Item("VALUE"), .NodeID = DataRow.Item("MENU_ID")}'实例化一个子节点

If DataRow.Item("URL").ToString.Length 0 Then

strURL = String.Format("{0}?menuid={1}", DataRow.Item("URL"), DataRow.Item("MENUID"))’菜单链接

MainMenuNode.NavigateUrl = strURL

MainMenuNode.IconUrl = "../image/leaf.gif"‘菜单图标

End If

MainMenuNode.SingleClickExpand = True’设置单击菜单时展开子菜单

MainMenuNode.Expanded = True‘默认展开所有菜单

tvNode.Nodes.Add(MainMenuNode)’将子节点添加进父节点

AddNode(tbMenu, MainMenuNode) '利用递归生成树形菜单

Next

End Sub

希望对你有帮助。


分享文章:vb.net树型控件 vb树视图控件
浏览地址:http://cdxtjz.cn/article/hpjips.html

其他资讯