在.net中樹形顯示
代碼如下:
Public Class Form1
Private Sub TreeView1_NodeMouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeNodeMouseClickEventArgs) Handles TreeView1.NodeMouseClick
If e.Node.Text = "11" Then
Dim fm As New Test._11
checkChd(fm, "11")
End If
If e.Node.Text = "22" Then
Dim fm As New Test._22
checkChd(fm, "22")
End If
End Sub
Public Function checkChd(ByVal frm As Form, ByVal frmStr As String) As Boolean
Dim frmTest As Form
If Me.Panel1.Controls.Count = 0 Then '如果是第一次打開一個節點
showForm(frm) '直接顯示畫面
Else
frmTest = CType(Me.Panel1.Controls(0), Form) '因爲不是第一次打開節點,所以判斷已經存在的節點畫面
If frmTest.Name = frmStr Then '通過畫面名字判斷
frmTest.Activate() '激活已經存在的和新打開的畫面相同的畫面
Else
frmTest.Close() '關閉已經存在的但是和新打開畫面不相同的畫面
showForm(frm) '顯示新打開的畫面
Exit Function
End If
End If
End Function
Public Function showForm(ByVal frm As Form) As Boolean
Dim fm As Form = frm
fm.MdiParent = Me '定義爲子窗體
fm.Dock = DockStyle.Fill '顯示形式爲充滿
Me.Panel1.Controls.Add(fm) '把新打開的窗體加入到容器的子窗體中
fm.Show()
End Function
End Class
還有父窗體中的屬性“IsMdiContainer”要設置爲“True”,這樣父窗體就是一個容器了。