0
Form1でForm2をボタンで開きます。 Form2の別のボタンをクリックすると、このフォームが分割されたコンテナのForm1パネルのコントロールとして追加されます。その後、私はフォームを閉じますが、分割されたコンテナコントロールは引き続き表示されます(私のForm2)。今度は、逆のコンテナコントロールを閉じて、前のようにForm2を通常のウィンドウに開きます。これはForm2の同じボタンから、この場合は分割されたコンテナのパネル内のコントロールから行います。これは可能ですか?パネルにフォームをドッキングしてからドッキング解除する同じフォームから
私の主な目的は、分割されたコンテナにForm2をドッキングして、Form2上のボタンからすべてをドッキングすることです。
EDIT:
Public Class Form2
Dim BtnState As Integer
Dim frm As Form2
Private Shared Sub DockFormToPanel(panel As Panel, frm As Form)
frm.TopLevel = False
frm.WindowState = FormWindowState.Maximized
frm.FormBorderStyle = FormBorderStyle.None
frm.Visible = True
Form1.SplitContainer1.Panel2.Controls.Add(frm)
End Sub
Private Shared Sub UndockFormFromPanel(panel As Panel, frm As Form)
If Not Form1.SplitContainer1.Panel2.Controls.Contains(frm) Then Throw New InvalidOperationException()
Form1.SplitContainer1.Panel2.Controls.Remove(frm)
frm.Visible = False
frm.TopLevel = True
frm.WindowState = FormWindowState.Normal
frm.FormBorderStyle = FormBorderStyle.Sizable
frm.Show()
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If BtnState = 0 Then
If frm Is Nothing Then
frm = New Form2
AddHandler frm.FormClosed, Sub() frm = Nothing
End If
DockFormToPanel(Form1.SplitContainer1.Panel2, frm)
BtnState = 1
Else
UndockFormFromPanel(Form1.SplitContainer1.Panel2, frm)
BtnState = 0
End If
End Sub
End Class