Button Visualisierung(Modul, Function existent?)

  • VB.NET
  • .NET (FX) 4.5–4.8

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

    Button Visualisierung(Modul, Function existent?)

    Ich designe gerne und meine Buttons in VB.net schmücke ich gerne mit Hover/Enter/Down Effekten aus. Das Problem ist: Der Code ist abartig lang:


    VB.NET-Quellcode

    1. 'Start Button
    2. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    3. Button1.Image = My.Resources.Start___Over
    4. End Sub
    5. Private Sub Button1_MouseEnter(sender As Object, e As EventArgs) Handles Button1.MouseEnter
    6. Button1.Image = My.Resources.Start___Over
    7. End Sub
    8. Private Sub Button1_MouseLeave(sender As Object, e As EventArgs) Handles Button1.MouseLeave
    9. Button1.Image = My.Resources.Start___Nothing
    10. End Sub
    11. Private Sub Button1_MouseDown(sender As Object, e As MouseEventArgs) Handles Button1.MouseDown
    12. Button1.Image = My.Resources.Start___Down
    13. End Sub


    Gibt es dafür eine Funktion oder ein Modul? Mir wäre nämlich folgendes viel lieber:

    VB.NET-Quellcode

    1. ButtonSwap(Button1, Bild Hover, Bild Down, Bild Unhover)


    Gibt es dafür eine bessere Methode?
    Wenn ich eine Frage stelle, habe ich sie bereits gegooglet. Ja, es kommt vor, dass ich die Antwort übersehe. Ja, es kommt vor, dass ich sie nicht verstehe. Deshalb bin ich hier. Wenn dies eure Frage war, dann antwortet bitte nicht. Es stiehlt sämtliche Motivation.
    @Sekki Mach Dir eine separate von Button abgeleitete Klasse.
    Click und MouseDown[tt][/tt] kannste zusammenfassen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @ErfinderDesRades
    Ich verabscheue dich nicht, ich kann nur deine Art zu "Helfen" nicht leiden. Selbstverständlich nehme ich jede Hilfe an, solange sie jemanden nicht demotiviert. Und manche Antworten demotivieren einen Programmierer nun mal zutiefst. Selbstverständlich soll man nicht alles gegeben bekommen, aber grade aus Sourcecodes lernen die besten Programmiere. Und mich störte einfach, dass für dich alles Selbstverständlich war. Grade du solltest meiner Meinung nach nicht demotivierend wirken. Für mich hast du am Anfang auf VB-P die Plattform nämlich repräsentiert. Aber jeder denkt anders.

    @RodFromGermany
    Genau daran habe ich auch bereits gedacht. Aber genau das ist mir zu hoch. Theoretisch würde ich nun eine zweite Klasse erstellen und dort die einzelnen "Schalter" reinschreiben, aber ich kann mit beim besten Willen nicht vorstellen, wie es geht. Egal, nach was ich suche, ich finde es nicht. z.B verstehe ich nicht, wie man in einer Klasse z.B einem Button ein neues Element beibringt(kann man das so sagen?) Sonst würde ich dem Button nämlich folgende Elemente beibringen:

    Button1.MouseOver(Bild)
    Button1.MouseDown(Bild)
    Button1.MouseUnhover(Bild)

    Aber das ist mir irgendwie wieder so hoch usw. Ist das überhaupt etwas einfaches? Ich habe im Internet danach gesucht aber einfach keinen Begriff gehabt.
    Wenn ich eine Frage stelle, habe ich sie bereits gegooglet. Ja, es kommt vor, dass ich die Antwort übersehe. Ja, es kommt vor, dass ich sie nicht verstehe. Deshalb bin ich hier. Wenn dies eure Frage war, dann antwortet bitte nicht. Es stiehlt sämtliche Motivation.

    Sekki schrieb:

    das ist mir zu hoch
    So was:

    VB.NET-Quellcode

    1. Public Class MyButton
    2. Inherits Button
    3. Protected Overrides Sub OnClick(e As EventArgs)
    4. Me.Image = My.Resources.Start___Over
    5. End Sub
    6. Protected Overrides Sub OnEnter(e As EventArgs)
    7. Me.Image = My.Resources.Start___Over
    8. End Sub
    9. Protected Overrides Sub OnMouseLeave(e As EventArgs)
    10. Me.Image = My.Resources.Start___Nothing
    11. End Sub
    12. Protected Overrides Sub OnMouseDown(e As MouseEventArgs)
    13. Me.Image = My.Resources.Start___Down
    14. End Sub
    15. End Class
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!