Dim tr As WinForm.TreeView
Dim nd As WinForm.TreeNode
'Dim id As Integer = nd.index
tr = e.Form.Controls("TreeView1")
tr.Nodes.Clear() '清除现有节点
Dim dr As DataRow
'''否则在产品表查找同名的产品行,将找到的行赋值给变量dr
dr = DataTables("表B").Find("[角色] = 'BOOS'")
Dim Multi As String = dr("配置")
Dim drs As List(Of DataRow) = DataTables("表A").Select("[窗口] in ('" & Multi.Replace("|", "','") & "')", "菜单")
tr.BuildTree("", "", "", "商务管理,销售管理,供应管理") 希望按照 商务管理,销售管理,供应管理 顺序控制排列
此主题相关图片如下:企业微信截图 下面是随机排序
_20240308121359.png
For Each drn As DataRow In drs
If tr.Nodes.Contains(drn("菜单")) Then
nd = tr.Nodes(drn("菜单"))
Else
nd = Tr.Nodes.Add(drn("菜单"), drn("菜单"))
nd.ForeColor = Color.Red
'希望子节点按照表A的归属插入到一级节点下
End If
nd.Nodes.Add(drn("窗口"), drn("窗口"))
Next
[此贴子已经被作者于2024/3/8 12:15:20编辑过]
表A增加一个排序列,select查询的时候按照这个列排序
Dim e = args(0)
Select Case MainTable.name
Case "导航"
If e.Node.Level = 0 Then
Dim Pa As WinForm.Panel
Pa = Forms("菜单_工作台").CreateControl("lable1", ControlTypeEnum.Panel)
Pa.Name = "Pa"
Pa.Width = 500
Pa.Height = 270
Pa.Left = (Forms("菜单_工作台").Width - Pa.Width) / 2
Pa.Top = (Forms("菜单_工作台").Height - Pa.Height) / 2
Pa.BackColor = Color.Wheat
Forms("菜单_工作台").AddControl(Pa)
Dim dr As DataRow
'''否则在产品表查找同名的产品行,将找到的行赋值给变量dr'''
If User.Type = UserTypeEnum.Developer Then '只有开发者才加载表C
Forms("目录树").Controls("Button1").Text = "开发者 _ 目录"
dr = Rolesdt.SQLFind("[角色名称] = '开发者'")
If dr IsNot Nothing Then '如果找到了同名的产品行,也就是dr不是Nothing
Dim zcdd As WinForm.Button
Dim Multi As String = dr("布局_PC功能")
Dim newMulti As String = "('" & Multi.Replace("|", "','") & "')"
Dim drs As List(Of DataRow) = cdwdt.Select("[主窗] in " & newMulti, "菜单排序")
For Each drn As DataRow In drs
Dim Value As String = drn("布局_PC功能")
Dim sps() As Char = {"|"}
Dim Names() As String = Value.Split(sps)
Dim s As Integer = 2
Dim t As Integer = 5
For i As Integer = 0 To Names.length - 1
If i <> 0 Then
If i Mod 10 = 0 Then
s = 2
t = t + 81.9
Else
s = s + 72.9
End If
End If
Dim nm As String = Names(i)
zcdd = e.Form.CreateControl(nm, ControlTypeEnum.Button)
' zcdd.Theme = "(none)" '去掉原来的样式
zcdd.Font = New Font("宋体", 9, FontStyle.Regular)
zcdd.Text = nm & vbcrlf & "***" & vbcrlf & "条"
zcdd.name = nm
zcdd.Width = 72
zcdd.Height = 81
zcdd.Left = s + 8
zcdd.Top = t + 2
zcdd.BorderSize = 0
Forms("菜单_工作台").Controls("Pa").AddControl(zcdd)
zcdd.ToolTip = zcdd.Text '动态提示
Next
Next
End If
End If
Else
End If
End Select
还是目录树的原理 想用Button控件显示 请教老师 怎么做
[此贴子已经被作者于2024/4/2 20:33:29编辑过]
如图 原来用节点显示的数据
现在想用按钮显示
根据角色分类显示
此主题相关图片如下:企业微信截图_20240402203245.png
[此贴子已经被作者于2024/4/2 20:38:20编辑过]
不就是i这种用法吗:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=190802&skin=0
案例
[此贴子已经被作者于2024/4/2 20:55:27编辑过]
If e.Node.Level = 0 Then
Forms("菜单按钮").Show
for each dr as datarow in DataTables("表A").select("[菜单] = '" & e.Node.Name & "'")添加按钮的代码比如
zcdd = e.Form.CreateControl(dr("窗口"), ControlTypeEnum.Button)
……
next
end if