コピー可能なメッセージボックス4

.NET Frameworkのエラーダイアログをパクる

JITなんちゃらって出るアレ。
メッセージ領域とスタックトレース領域を分けるためにSplitContainerを投入してみたが、リサイズが結構面倒。

    ''' <summary>
    ''' 詳細部を縮小または展開します。
    ''' </summary>
    ''' <param name="collapse">縮小時はTrue、展開時はFalse</param>
    ''' <remarks></remarks>
    Private Sub DetailCollapse(ByVal collapse As Boolean)
        If (collapse = True AndAlso Me.MainContainer.Panel2Collapsed = False) Then
            ' Collapse
            Me.lblExpand.Text = "▼"
            Me.Height -= (Me.MainContainer.Height - Me.MainContainer.Panel1.Height)
            Me.MainContainer.Panel2Collapsed = True
            Me.MainContainer.IsSplitterFixed = True

        ElseIf (collapse = False AndAlso Me.MainContainer.Panel2Collapsed = True) Then
            ' Expand
            Me.lblExpand.Text = "▲"
            Dim i As Integer = Me.MainContainer.Panel1.Height
            Me.MainContainer.Panel2Collapsed = False
            Me.Height += CInt((Me.MainContainer.Panel2.Height + Me.MainContainer.SplitterWidth) * i / Me.MainContainer.Panel1.Height)
            Me.MainContainer.IsSplitterFixed = False

        End If
    End Sub

SplitContainerを、Panel1とそれ以外(Panel2+Splitter)に分けて考えるという事に気づくまで若干時間がかかってしまったorz