Wie gesagt das sind meine ersten versuche
Habe jetzt folgende änderungen gemacht :
Die Buttons werden unter dem Sub new Instanziert und
die Eigenschaften der Buttons unter den dazugehörigen Probertys
definiert.
Public Sub New()
Me.NavigateBack = New PictureButton
Me.NavigateForward = New PictureButton
Me.Controls.Add(Me.NavigateBack)
Me.Controls.Add(Me.NavigateForward)
End Sub
...
' Die Grafik die für den navigate Forward Image verwendet wird
Public Property ImageNavigateForward() As Image
Get
Return Me.XImageNavigateForward
End Get
Set(ByVal Value As Image)
Me.XImageNavigateForward = Value
Me.NavigateForward.BackgroundImageValue = Me.XImageNavigateForward
Me.NavigateForward.Size = Me.XImageNavigateBack.Size
Me.NavigateForward.Location = New System.Drawing.Point( _
Me.ClientSize.Width - Me.XImageNavigateBack.Width - 5, 10)
End Set
End Property
... Das Paint Ereigniss sieht nun so aus :
'Die Paint eigenschaft wird überschrieben und das Steuerelement gezeichnet
Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
' Den Hintergund des Steuerelments zeichnen
Me.Draw_Background(e)
Me.Draw_Streckenführung(e)
MyBase.OnPaint(e)
' Veraltete Ressourcen wieder freigeben
Dispose()
End Sub
Private Sub Draw_Background(ByVal e As PaintEventArgs)
' Es wird nun der Hintergrund des Steuerlements gezeichnet
Dim Backgroundcolor As System.Drawing.Brush = New _
System.Drawing.SolidBrush(Me.xTextPadColor)
Dim LineColor As System.Drawing.Brush = New System.Drawing.SolidBrush( _
Me.xLineColor)
Dim HeaderBackgroundcolor As System.Drawing.Brush = New _
System.Drawing.SolidBrush(Me.xHeaderBgColor)
' Der Hintergund des Steuerlements wird nun gezeichnet
e.Graphics.FillRectangle(Backgroundcolor, Me.ClientRectangle)
' Den Hintergrund des Headers einfärben
e.Graphics.FillRectangle(HeaderBackgroundcolor, 0, 0, _
Me.ClientRectangle.Width, 35)
' Nun wird die Obere und untere Farbleiste gezeichnet
e.Graphics.FillRectangle(LineColor, 0, 0, Me.ClientRectangle.Width, 2)
e.Graphics.FillRectangle(LineColor, 0, Me.ClientRectangle.Height - 2, _
Me.ClientRectangle.Width, 2)
End Sub
Private Sub Draw_Streckenführung(ByVal e As PaintEventArgs)
' Brushes bereitstellen
Dim HeaderTextColor As System.Drawing.Brush = New _
System.Drawing.SolidBrush(Me.xHeaderColor)
' Es wird nun die Streckenführung gezeichnet und dargestellt
' Nun den Header in die Box schreiben
e.Graphics.DrawString(Me.xHeaderText, Me.xHeaderFont, HeaderTextColor, _
10, 10)
' Nun die 2 pictureboxen in den Vordergund holen
Me.NavigateBack.BringToFront()
Me.NavigateForward.BringToFront()
End Sub Das Steuerlement wird Grafisch etwas aufgepeppt erhält einen Header in dem Die aktuelle Strecke die in einer SQLCE Datenbank liegt angezeigt wird.
Der User soll nun die Möglichkeit haben, mit den Buttons durch die Datensätze zu navigieren.
Im Inhalt des Steuerlements werden dann die Daten der Strecke angezeigt.
Durch einen weiteren button soll der User nun Messdaten eingeben und diese
wiederum auf den SQLCE Server speichern, welche später wiederum zur Bearbeitung ausgelesen werden sollen.
Ich hoffe Das Steuerlement ist jetzt etwas besser aufgebaut ???????? |