给你一段我曾经写的代码,主要是生成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
说实话一般不是你这样存储的,一般是用一个字段存储ID号,然后用另一个字段存储上级单位的ID号,然后用递归函数生成TreeView。建议你增加一个字段,然后将编号解析出的上级单位存储在里面。以下是我的一个程序用的递归函数:
表名是unit,其中包含了单位名称unit_name,编号unit_id,Unit_upper就是上级单位的id号。
调用方式是 addtree(ds1, TreeView1.Nodes, 0),其中ds1是一个DataSet,对应单位的表,treeview1是控件名称,0是固定值,与表中根节点部门的Unit_upper一致(这个单位没有上级)。
Public Function addtree(ByVal ds As DataSet, ByVal treename As TreeNodeCollection, ByVal x1 As Integer) As Boolean
Dim dt As DataTable = ds.Tables("unit")
Dim dm As BindingManagerBase = Me.BindingContext(ds, "unit")
Dim dr As DataRow() = dt.Select("unit_upper=" x1.ToString)
Dim dr1 As DataRow
Dim nd As TreeNode
Dim nd1 As TreeNode
Dim x2 As Integer
If dr.GetLength(0) 0 Then
For Each dr1 In dr
nd = treename.Add(dr1("unit_name"))
nd.Tag = (dr1("unit_id"))
x2 = treename.IndexOf(nd)
addtree(ds, treename.Item(x2).Nodes, dr1("unit_id"))
Next
End If
Return True
End Function
不需要用数组:
假设已经存在的图片文件存放在 C:\图片 文件夹里,并假设新创建的文件夹位于C:\图片 文件夹里。
在窗体上添加一个按钮,代码如下:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim n As Long = -1
Dim P As Long = -1
Dim Pn As String
Dim MyNum As Integer = 100 '每100个文件存放在一个文件夹里
Dim MyPath As String
Dim MyFileName As String
Button1.Enabled = False
MyPath = "C:\图片\" '指定已有图片的路径
MyFileName = UCase(Dir(MyPath, FileAttribute.Normal)) ' 找寻第一项。
Do While MyFileName "" ' 开始循环。
If InStr(MyFileName, "JPG") 0 Or InStr(MyFileName, "GIF") 0 Or InStr(MyFileName, "PNG") 0 Then
n = n + 1
If n \ MyNum P Then
P = P + 1
Pn = CStr(n \ MyNum + 1)
MkDir(MyPath Pn)
End If
FileCopy(MyPath MyFileName, MyPath Pn "\" MyFileName)
End If
MyFileName = UCase(Dir()) ' 查找下一项
Loop
Button1.Enabled = True
End Sub
代码通过测试。
这里有个C#的网上OA的代码,可以参考一下:
第10章(\C10)
示例描述:本章实现了办公自动化系统,通过该系统,公司不同角色的员工可以通过网路完成日常的办公,包括撰写报告、审阅公文等。另外,系统还将实现一个系统管理员角色,对整个系统进行动态的维护。
\MyOA\Affix 网络办公系统用户上传附件目录
\MyOA\App_Code\BusinessLogicHelper 网络办公系统业务逻辑接口层,包括文件:
\FileHelper.cs 公文接口类
\ValidateUtility.cs 数据验证功能类
\MyOA\App_Code\BusinessLogicLayer 网络办公系统业务逻辑层,包括以下文件:
\Department.cs 部门类
\File.cs 公文类
\FileStatus.cs 公文状态类
\Plan.cs 工作计划类
\Role.cs 用户角色权限类
\User.cs 用户类
\MyOA\App_Code\CommonComponent 网络办公系统通用组件层,包括文件:
\Encrypt.cs 字符串加密类
\EventsLog.cs 系统日志类
\Tree.cs 权限树类
\MyOA\App_Code\DataAccessHelper 网络办公系统数据访问接口层,包括文件:
\SQLString.cs 构造SQL语句的通用类
\GetSafeData.cs 安全获取数据类
\MyOA\App_Code\DataAccessLayer 网络办公数据访问层,包括文件:
\Database.cs 数据访问类
\MyOA\App_Code\UserControls 网络办公用户控件,包括文件:
\LeftTree.ascx 权限树菜单控件
\MyOA\DB\MyOA_CreateTable.sql 网络办公数据库创建脚本
\MyOA\DB\MyOA_InitData.sql 网络办公数据库数据初始化脚本
\MyOA\Images\ 网络办公系统图片文件夹
\MyOA\Styles\Styel.css 网络办公系统样式表文件
\MyOA\Default.aspx 系统首页
\MyOA\FileAdd.aspx 添加公文页面
\MyOA\FileDetail.aspx 查看公文详细信息页面
\MyOA\FileList.aspx 浏览、查询公文页面
\MyOA\Login.aspx 登录页面
\MyOA\LogView.aspx 日志管理页面
\MyOA\PlanList.aspx 工作计划管理页面
\MyOA\RoleManage.aspx 权限管理页面
\MyOA\UserAdd.aspx 添加用户页面
\MyOA\UserList.aspx 浏览、查询用户页面
\MyOA\UserResetPwd.aspx 用户修改密码页面
\MyOA\UserUpdate.aspx 修改用户信息页面
虽然不是VB,不过都是.net,应该能看懂吧。