Button Steuerelement - Text und Hover

  • Allgemein

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Devilx1.

    Button Steuerelement - Text und Hover

    Hallo Leute,

    Ich habe nun endlich erste Erfolge bei einen Steuerelement erzielen können, habe aber jetzt Probleme zu den ich keine Lösung finde:
    Mein Button zeigt keinen Text an, Draw String hat auch nichts gebracht. (Ausser ich habe einen Fehler gemacht.)
    Ausserdem möchte ich das sich die Farbe ändert wenn man mit der Maus auf den Button kommt, also einen Hover Effekt.

    Bisher sieht das ganze so aus:

    Der Button ist Teil eines Ubuntu Styles, welchen ich gerne demnächst fertig haben würde. :)
    also Text auf den Button bekommste unter eigenschafften ändern des mit der arbe sieht mit 2 Mouse events so aus :

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Button1_mouseenter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.MouseEnter
    3. Button1.BackColor = Color.Cyan
    4. End Sub
    5. Private Sub Button1_mousleave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.MouseLeave
    6. Button1.BackColor = Color.DarkBlue
    7. End Sub
    8. End Class
    Anfangs Farbe vom Button auhc auf Darkblue stellen und dann wechselt es die Farbe^^
    Ich denke du verstehst mich falsch, ich benutze ein eigenes Steuerelement welches aber die Buttonklasse als Elternteil hat.

    Sprich:

    VB.NET-Quellcode

    1. Public Class Ubuntu_Button : Inherits System.Windows.Forms.Button


    Ich benutze für die Paint Methode dann:

    VB.NET-Quellcode

    1. Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
    2. MyBase.OnPaint(e)


    Das Problem ist das Mousehover eine System.EventArgs ist und somit keine Paint Methoden beeinhalten darf.
    Was also tun um trotzdem die Farben zu ändern?

    Ich denke das mit den Text ist einfacher zu lösen.
    du kannst auch ein ganz normales Label benutzen das du auf deinen button platzierst, und über das eigenschaffts fenster veränderst du dann den text des labels, dafür ist keine drawstring methode notwendig.

    VB.NET-Quellcode

    1. Public Property Caption() As String
    2. Get
    3. Return Label1.Text
    4. End Get
    5. Set(ByVal value As String)
    6. Label1.Text = value
    7. End Set
    8. End Property