Hi!
In Anlehnung an die beiden Threads (1, 2) habe ich mal kurz ein Usercontrol zusammengeschrieben. Ist nicht perfekt, fühlt euch frei, zu testen, verändern, spielen, lernen.
Kommentare willkommen, Änderungswünsche zwecklos.
Anwendung: neues Projekt erstellen, "Benutzersteuerelement" hinzufügen, dessen Quellcode durch untenstehenden ersetzen, Projekt "neu erstellen", fertisch.
Lizenz: "have fun"
LG, der_Kurt
In Anlehnung an die beiden Threads (1, 2) habe ich mal kurz ein Usercontrol zusammengeschrieben. Ist nicht perfekt, fühlt euch frei, zu testen, verändern, spielen, lernen.
Kommentare willkommen, Änderungswünsche zwecklos.
Anwendung: neues Projekt erstellen, "Benutzersteuerelement" hinzufügen, dessen Quellcode durch untenstehenden ersetzen, Projekt "neu erstellen", fertisch.
Lizenz: "have fun"
VB.NET-Quellcode
- ''' <summary>
- ''' Benutzersteuerelement "Linie"
- ''' </summary>
- ''' <remarks></remarks>
- Public Class Linie
- ''' <summary>
- ''' definiert intern die verwendeten Farben für den Effekt
- ''' </summary>
- ''' <remarks></remarks>
- Dim color_1, color_2 As Color
- ''' <summary>
- ''' definiert extern die verwendeten Farben für den Effekt
- ''' </summary>
- ''' <value></value>
- ''' <returns></returns>
- ''' <remarks>vorbelegt mit Standard-Wwert</remarks>
- Public Property Farbe1 As Color = Color.LightGray
- ''' <summary>
- ''' definiert extern die verwendeten Farben für den Effekt
- ''' </summary>
- ''' <value></value>
- ''' <returns></returns>
- ''' <remarks>vorbelegt mit Standard-Wwert</remarks>
- Public Property Farbe2 As Color = Color.White
- ''' <summary>
- ''' der Style. Linie ist eingraviert, oder erhaben...
- ''' </summary>
- ''' <remarks>...bessere Bezeichnungen sind willkommen</remarks>
- Public Enum enumStyle
- engraved
- hovered
- End Enum
- Private _style As enumStyle = enumStyle.engraved
- ''' <summary>
- ''' der Style der Linie
- ''' </summary>
- ''' <value></value>
- ''' <returns></returns>
- ''' <remarks></remarks>
- Property Style As enumStyle
- Set(ByVal value As enumStyle)
- _style = value
- Select Case value
- Case enumStyle.engraved
- color_1 = Farbe1
- color_2 = Farbe2
- Case enumStyle.hovered
- color_1 = Farbe2
- color_2 = Farbe1
- End Select
- Me.Invalidate()
- End Set
- Get
- Return _style
- End Get
- End Property
- Private Sub control_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
- 'hier wird etwas getrickst:
- '......die erste Linie wird gezeichnet,
- Using p As New Pen(color_1, 1)
- With e.Graphics
- Select Case Ausrichtung
- Case enumAusrichtung.vertical
- .DrawLine(p, 0, 1, 0, Height)
- Case enumAusrichtung.horizontal
- .DrawLine(p, 1, 0, Width, 0)
- Case Else
- End Select
- End With
- End Using
- '......die zweite Linie ist die Hintergrundfarbe
- Me.BackColor = color_2
- End Sub
- Private Sub control_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
- 'Bei veränderung zur Entwurfszeit
- If Ausrichtung = enumAusrichtung.vertical Then
- Me.Size = New Size(2, Height)
- ElseIf Ausrichtung = enumAusrichtung.horizontal Then
- Me.Size = New Size(Width, 2)
- End If
- Me.Invalidate()
- End Sub
- Public Enum enumAusrichtung
- horizontal
- vertical
- End Enum
- Private _ausrichtung As enumAusrichtung = enumAusrichtung.horizontal
- ''' <summary>
- ''' die Ausrichtung der Linie
- ''' </summary>
- ''' <value></value>
- ''' <returns></returns>
- ''' <remarks></remarks>
- Public Property Ausrichtung As enumAusrichtung
- Set(ByVal value As enumAusrichtung)
- _ausrichtung = value
- If Ausrichtung = enumAusrichtung.vertical Then
- Me.Size = New Size(2, 100)
- ElseIf Ausrichtung = enumAusrichtung.horizontal Then
- Me.Size = New Size(100, 2)
- End If
- Me.Invalidate()
- End Set
- Get
- Return _ausrichtung
- End Get
- End Property
- Sub New()
- ' Dieser Aufruf ist für den Designer erforderlich.
- InitializeComponent()
- ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
- Ausrichtung = enumAusrichtung.horizontal
- Style = enumStyle.engraved
- End Sub
- End Class
LG, der_Kurt