窗口与控件事件
目录窗口_AfterLoad
'(打开窗口自动生成,如是按钮Click事件则需点击按钮)
' 点击按钮生成目录树.【递归:通过母序号与序号】
Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim nd As WinForm.TreeNode
Dim dt As DataTable = DataTables("q")
tr.StopRedraw()
tr.Nodes.Clear
tr.Nodes.Add("全部")
For Each dr As DataRow In dt.datarows
If dr.IsNull("母序号") Then
nd = tr.Nodes.Add(dr("序号"),dr("序号") & dr("标题"))
Functions.Execute("AddChildren",nd,dt)
End If
Next
tr.ResumeRedraw()
目录窗口_Button1_Click
' 点击按钮生成目录树.【递归:通过母序号与序号】
Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim nd As WinForm.TreeNode
Dim dt As DataTable = DataTables("q")
tr.StopRedraw()
tr.Nodes.Clear
tr.Nodes.Add("全部")
For Each dr As DataRow In dt.datarows
If dr.IsNull("母序号") Then
nd = tr.Nodes.Add(dr("序号"),dr("标题"))
Functions.Execute("AddChildren",nd,dt)
End If
Next
tr.ResumeRedraw()
目录窗口_TreeView1_NodeMouseDoubleClick
' 点击 目录 后 生成 目录树表,双击 节点 后 展开
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim key As String = e.Node.Name
Dim ids As String
If key = "全部" Then
Tables("q").Filter = ""
Else
For Each nd As WinForm.TreeNode In trv.AllNodes
Dim pd As WinForm.TreeNode = nd
Do
If pd.Name = key Then
If ids > "" Then
ids= ids & ","
End If
ids = ids & "'" & nd.name & "'"
Exit Do
Else
pd = pd.ParentNode
If pd Is Nothing Then
Exit Do
End If
End If
Loop
Next
Tables("q").Filter = "序号 In (" & ids & ")"
End If
自定义函数
AddChildren
'http://www.foxtable.com/help/topics/2502.htm
Dim nd As WinForm.TreeNode = args(0)
Dim dt As DataTable = args(1)
For Each dr As DataRow In dt.Select("","序号")
Dim km As String = dr("序号")
If km.StartsWith(nd.Name) AndAlso km.Length = nd.Name.Length + 2 Then
Dim cd As Winform.TreeNode = nd.Nodes.Add(km,km & " " & dr("标题"))
Functions.Execute("AddChildren",cd,dt)
End If
Next