扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
Imports System.IO Public Class Form1 Inherits System.Windows.Forms.Form #Region " Windows 窗体设计器生成的代码 " Public Sub New() MyBase.New() '该调用是 Windows 窗体设计器所必需的。 InitializeComponent() '在 InitializeComponent() 调用之后添加任何初始化 End Sub '窗体重写 dispose 以清理组件列表。 Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing Then If Not (components Is Nothing) Then components.Dispose() End If End If MyBase.Dispose(disposing) End Sub 'Windows 窗体设计器所必需的 Private components As System.ComponentModel.IContainer '注意: 以下过程是 Windows 窗体设计器所必需的 '可以使用 Windows 窗体设计器修改此过程。 '不要使用代码编辑器修改它。 Friend WithEvents TreeView1 As System.Windows.Forms.TreeView Friend WithEvents btnOpenBrower As System.Windows.Forms.Button Friend WithEvents ImageList1 As System.Windows.Forms.ImageList <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() Me.components = New System.ComponentModel.Container Dim resources As System.Resources.ResourceManager = New System.Resources.ResourceManager(GetType(Form1)) Me.TreeView1 = New System.Windows.Forms.TreeView Me.ImageList1 = New System.Windows.Forms.ImageList(Me.components) Me.btnOpenBrower = New System.Windows.Forms.Button Me.SuspendLayout() ' 'TreeView1 ' Me.TreeView1.Dock = System.Windows.Forms.DockStyle.Left Me.TreeView1.ImageList = Me.ImageList1 Me.TreeView1.Location = New System.Drawing.Point(0, 0) Me.TreeView1.Name = "TreeView1" Me.TreeView1.Size = New System.Drawing.Size(376, 581) Me.TreeView1.TabIndex = 0 ' 'ImageList1 ' Me.ImageList1.ImageSize = New System.Drawing.Size(16, 16) Me.ImageList1.ImageStream = CType(resources.GetObject("ImageList1.ImageStream"), System.Windows.Forms.ImageListStreamer) Me.ImageList1.TransparentColor = System.Drawing.Color.Transparent ' 'btnOpenBrower ' Me.btnOpenBrower.Location = New System.Drawing.Point(408, 64) Me.btnOpenBrower.Name = "btnOpenBrower" Me.btnOpenBrower.Size = New System.Drawing.Size(96, 23) Me.btnOpenBrower.TabIndex = 1 Me.btnOpenBrower.Text = "Open Brower" ' 'Form1 ' Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14) Me.ClientSize = New System.Drawing.Size(536, 581) Me.Controls.Add(Me.btnOpenBrower) Me.Controls.Add(Me.TreeView1) Me.Name = "Form1" Me.Text = "Form1" Me.ResumeLayout(False) End Sub #End Region Private Sub OpenBrower() Dim f As New FolderBrowserDialog If f.ShowDialog = DialogResult.OK Then Me.TreeView1.Nodes.Clear() Me.SuspendLayout() Dim nodeTemp As TreeNode = CType(Me.Invoke(New AddTreeNodeHandler(AddressOf Me.AddFileToTreeview), New Object() {f.SelectedPath}), TreeNode) Me.AddFile(New DirectoryInfo(f.SelectedPath), nodeTemp) Me.ResumeLayout(False) End If End Sub Private Sub AddFile(ByVal dirPath As DirectoryInfo, ByVal node As TreeNode) Dim tempHandler As New AddFileHandler(AddressOf Me.AddFileToTreeNode) For Each dir As DirectoryInfo In dirPath.GetDirectories() Dim nodeTemp As TreeNode = CType(Me.Invoke(tempHandler, New Object() {dir.Name, CLASSIO.Directory, node}), TreeNode) Me.AddFile(dir, nodeTemp) Next For Each file As FileInfo In dirPath.GetFiles("*.dll") Me.Invoke(tempHandler, New Object() {file.Name, CLASSIO.File, node}) Next End Sub Private Function AddFileToTreeNode(ByVal str As String, ByVal cls As CLASSIO, ByVal node As TreeNode) As TreeNode Dim nodeTemp As New TreeNode(str) nodeTemp.ImageIndex = CInt(cls) node.Nodes.Add(nodeTemp) nodeTemp.SelectedImageIndex = nodeTemp.ImageIndex Return nodeTemp End Function Private Function AddFileToTreeview(ByVal str As String) As TreeNode Dim nodeTemp As New TreeNode(str) Me.TreeView1.Nodes.Add(nodeTemp) Return nodeTemp nodeTemp.SelectedImageIndex = CInt(CLASSIO.Directory) End Function Private Sub btnOpenBrower_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOpenBrower.Click '多线程 Dim t As Threading.Thread = New Threading.Thread(AddressOf Me.OpenBrower) t.Start() '单线程 'Me.OpenBrower() End Sub End Class Public Enum CLASSIO File = 1 Directory = 0 End Enum Public Delegate Function AddFileHandler(ByVal str As String, ByVal cls As CLASSIO, ByVal Node As TreeNode) As TreeNode Public Delegate Function AddTreeNodeHandler(ByVal str As String) As TreeNode |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者