![]() |
Tipp 0046
|
MessageBox individuell gestalten
|
 |
|
Autor/Einsender: Datum: |
|
Jürgen Hardt 18.06.2004 |
|
Entwicklungsumgebung: |
|
VB.Net 2003 |
Framework: |
|
1.1 |
|
|
Der MessageBox in VB.Net wird nur die Show-Methode zur Verfügung gestellt.
Eine individuelle Gestaltung und Positionierung auf dem Bildschirm ist auf normalen
Wege nicht möglich. Abhilfe schafft eine Klasse, in der mit GDI+-Methoden das Aussehen der
MessageBoxen bestimmt wird.
|
|
|
|
Public Class frmMain
Inherits System.Windows.Forms.Form
Dim xIB As InfoBox Vom Windows Form Designer generierter Code
Public Shared Sub Main()
Application.EnableVisualStyles()
Application.Run(New frmMain)
End Sub
Private Sub btnSample1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnSample1.Click
With xIB
.Location = New Point(100, 100)
.Picture = .InfoBoxPicture.InfoPicture
.Show("Der Vorgang wurde erfolgreich ausgeführt.", _
InfoBox.InfoBoxButtons.YesNo)
End With
End Sub
Private Sub btnSample2_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnSample2.Click
Dim eResult As System.Windows.Forms.DialogResult
With xIB
.BackColor = Color.LightGreen
.Location = New Point(200, 0)
.Font = New Font("Comic Sans MS", 8)
.Picture = .InfoBoxPicture.QuestionPicture
eResult = .Show( _
"Sollen alle Dateien wirklich gelöscht werden ?", _
InfoBox.InfoBoxButtons.YesNo)
End With
Select Case eResult
Case DialogResult.Yes
'
Case DialogResult.No
'
End Select
End Sub
Private Sub btnSample3_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnSample3.Click
With xIB
.GradientBackground = False
.BackColor = Color.Aqua
.ForeColor = Color.Blue
.Location = New Point(0, 100)
.Font = New Font("Tahoma", 8, FontStyle.Bold)
.Picture = .InfoBoxPicture.ErrorPicture
.Show("Die Grafik-Karte ist defekt. " & _
"Tauschen Sie die Hardware umgehend aus.", _
InfoBox.InfoBoxButtons.Abort)
End With
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
Me.Close()
End Sub
End Class
|
|
|
|
|
Imports System.Drawing.Drawing2D
Public NotInheritable Class InfoBox
Inherits System.Windows.Forms.Form
Private Shared tLocation As System.Drawing.Point
Private Shared xFont As System.Drawing.Font
Private Shared tSize As System.Drawing.Size
Private Shared iBackColor As System.Drawing.Color = _
System.Drawing.SystemColors.Control
Private Shared iForeColor As System.Drawing.Color = _
System.Drawing.SystemColors.ControlText
Private Shared ePicture As InfoBoxPicture = _
InfoBoxPicture.InfoPicture
Private Shared bGradient As Boolean = True
Private bExit As Boolean
Public Enum InfoBoxPicture
InfoPicture = 0
QuestionPicture = 1
ErrorPicture = 2
End Enum
Public Enum InfoBoxButtons
OK = 0
YesNo = 1
OKCancel = 2
RetryCancel = 3
Abort = 4
End Enum Vom Windows Form Designer generierter Code
Private Sub InfoBox_Paint(ByVal sender As Object, _
ByVal e As System.Windows.Forms.PaintEventArgs) _
Handles MyBase.Paint
If bGradient Then
Dim xGraphics As Graphics = e.Graphics
Dim xBrush As New LinearGradientBrush(New Point(0, 0), _
New Point(Me.Width, 0), _
Color.White, BackColor)
xGraphics.FillRectangle(xBrush, Me.ClientRectangle)
End If
End Sub
Protected Overrides Sub WndProc(ByRef m As _
System.Windows.Forms.Message)
If m.Msg = &H10 Then
If Not bExit Then
Return
End If
End If
MyBase.WndProc(m)
End Sub
End Class
|
|
|
|
|
Windows-Version |
98/SE |
 |
|
ME |
 |
|
NT |
 |
|
2000 |
 |
|
XP |
 |
|
Vista |
 |
|
Win
7 |
 |
|
|
|
Download (16,6 kB)
|
Downloads bisher: [ 1177 ]
|
|
|