在.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”,这样父窗体就是一个容器了。