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

System.Windows.Forms.MessageBoxIconを受け取ってシステムのアイコンを描画。

PictureBoxにシステム既定のアイコンを描画する。

    ''' <summary>
    ''' MessageDialogにアイコンを設定します。
    ''' </summary>
    ''' <param name="icon">表示する情報を定義する定数を指定します。</param>
    ''' <remarks></remarks>
    Private Sub SetIcon(ByVal icon As System.Windows.Forms.MessageBoxIcon)
        Dim bmp As New System.Drawing.Bitmap(pbIcon.Width, pbIcon.Height)
        Using g As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(bmp)
            Select Case icon
                Case Windows.Forms.MessageBoxIcon.Asterisk
                    g.DrawIcon(System.Drawing.SystemIcons.Asterisk, 0, 0)

                Case Windows.Forms.MessageBoxIcon.Error
                    g.DrawIcon(System.Drawing.SystemIcons.Error, 0, 0)

                Case Windows.Forms.MessageBoxIcon.Exclamation
                    g.DrawIcon(System.Drawing.SystemIcons.Exclamation, 0, 0)

                Case Windows.Forms.MessageBoxIcon.Hand
                    g.DrawIcon(System.Drawing.SystemIcons.Hand, 0, 0)

                Case Windows.Forms.MessageBoxIcon.Information
                    g.DrawIcon(System.Drawing.SystemIcons.Information, 0, 0)

                Case Windows.Forms.MessageBoxIcon.None
                    g.Clear(pbIcon.BackColor)

                Case Windows.Forms.MessageBoxIcon.Question
                    g.DrawIcon(System.Drawing.SystemIcons.Question, 0, 0)

                Case Windows.Forms.MessageBoxIcon.Stop
                    g.DrawIcon(System.Drawing.SystemIcons.Shield, 0, 0)

                Case Windows.Forms.MessageBoxIcon.Warning
                    g.DrawIcon(System.Drawing.SystemIcons.Warning, 0, 0)

                Case Else
                    g.Clear(pbIcon.BackColor)

            End Select
        End Using

        Me.pbIcon.Image = bmp
    End Sub

さて、ここまででメッセージボックスとしての機能はOK。
あとはJIT的なアレだが、これまた別途にしよう。