> 最大化した子フォームのウインドウキャプションをMdiClientの領域のみに表示することは可能なのでしょうか? MDI であることに拘りが無いのなら、Left パネルの隣に Dock = Fill BackColor = AppWorkspace BorderStyle = Fixed3D なパネルを置いて、それを元の MdiClient 代わりにするのはどうでしょうか。
C# か VB か分からなかったので、とりあえず VB で書いてみました。
'Form1: MDI親フォーム Public Class Form1
Private WithEvents mdiClient As MdiClient Protected Overrides Sub OnLoad(e As EventArgs) mdiClient = Controls.OfType(Of MdiClient).FirstOrDefault() MyBase.OnLoad(e) End Sub
Private Sub mdiClient_ControlAdded(sender As Object, e As ControlEventArgs) Handles mdiClient.ControlAdded Dim child = TryCast(e.Control, Form) If child IsNot Nothing Then child.MdiParent = Nothing child.TopLevel = False child.Parent = Me.Panel2 '右側の Dock パネル End If End Sub
Private Sub Form1_Shown(sender As Object, e As EventArgs) Handles Me.Shown 'Form2: MDI 子フォーム Dim c As New Form2() With {.MdiParent = Me} c.Show() End Sub End Class
Private Sub Form1_Shown(sender As Object, e As EventArgs) Handles Me.Shown 'Form2: MDI 子フォーム Dim c As New Form2() With {.MdiParent = Me} c.Show() AddHandler c.Move, Sub() Panel2.PerformLayout() End Sub