Button 1 drückt auch Button 2

  • VB.NET

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

    Button 1 drückt auch Button 2

    Guten Nachmittag

    Nun Ich bin mit meinem kleinem Programm fertig. Allerdings hätte Ich gerne noch eine Funktion.

    Wenn Ich einen Button drücke, z.B. 1 soll dieser auch den Button 2 drücken.

    Ich hab einen Code im Internet gefunden, wahrscheinlich Funktioniert er icht mehr.

    VB.NET-Quellcode

    1. Button1.performclick

    chaotium schrieb:

    Ich hab einen Code im Internet gefunden, wahrscheinlich Funktioniert er icht mehr.
    Der funktioniert genau dann, wenn Du den Button an der GUI auch tatsächlich drücken kannst.
    Ist der Button .Enable = False oder .Visible = False, geht es nicht.
    Ansonsten rufe den Eventhandler direkt auf:

    VB.NET-Quellcode

    1. Button1_Click(Nothing, Nothing)
    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!
    Teste mal:

    VB.NET-Quellcode

    1. ​Public Class Form4
    2. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    3. MessageBox.Show("BTN1")
    4. Button2.PerformClick()
    5. Button2_Click(Button2, New EventArgs)
    6. End Sub
    7. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    8. MessageBox.Show("BTN2")
    9. End Sub
    10. End Class
    Wie wäre es, einfach Methoden zu schreiben die dann entsprechend aufgerufen werden? Finde die Anforderung etwas dubios.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Aber was mir fehlt ist das Optische. Also wenn der Button eingedrückt wird.
    Mach dir eine Prozedur, die das übernimmt. Ich habe das auch mal gemacht. Die Prozedur verkleinert den Button, zentriert ihn, und macht ihn wieder größer. Das hat dann den optischen Effekt, als würdest du im realen Leben einen Drucktaster irgendwo reindrücken, sodass dieser beim Reingedrückt-Sein kleiner erscheint (perspektivisches Sehen).

    VB.NET-Quellcode

    1. Private Shared Sub Button_Reindrueck_Effekt(ByVal sender As Object)
    2. If sender Is Nothing Then Return
    3. Dim aButton As Button = CType(sender, Button)
    4. Dim RememberXpos As Integer = aButton.Location.X
    5. Dim RememberYpos As Integer = aButton.Location.Y
    6. Dim ButtonXEnd As Integer = aButton.Location.X + aButton.Size.Width
    7. Dim ButtonYEnd As Integer = aButton.Location.Y + aButton.Size.Height
    8. Dim oldSize As Size = aButton.Size
    9. 'Shrink the Button with projection formula but there aren't any rotation effects, for example, “a part is moving towards me and the opposite site is moving away”, so that we don't need to pay attention about the camera position. The formula terms could be cancelled down to this. Thus, it looks like the rule of three, again…
    10. Dim Window_Distance As Double = 2.0
    11. Dim Entfernung_Objekt As Double = (25.0 / 12.0) ' 2.0/(25.0/12.0) = 96%
    12. aButton.Size = New Size(CInt(Math.Round(Window_Distance / Entfernung_Objekt * aButton.Size.Width, 0)),
    13. CInt(Math.Round(Window_Distance / Entfernung_Objekt * aButton.Size.Height, 0)))
    14. ' center the button
    15. Dim ButtonXEndeDiffHalf As Integer = CInt(Math.Round((ButtonXEnd - (aButton.Location.X + aButton.Size.Width)) / 2.0, 0))
    16. Dim ButtonYEndeDiffHalf As Integer = CInt(Math.Round((ButtonYEnd - (aButton.Location.Y + aButton.Size.Height)) / 2.0, 0))
    17. aButton.Location = New Point(aButton.Location.X + ButtonXEndeDiffHalf, aButton.Location.Y + ButtonYEndeDiffHalf)
    18. aButton.Update()
    19. System.Threading.Thread.Sleep(100)
    20. ' re-enlarge
    21. aButton.Size = oldSize
    22. aButton.Location = New Point(RememberXpos, RememberYpos)
    23. Application.DoEvents()
    24. End Sub


    Aufruf dieser Sub geht so:

    VB.NET-Quellcode

    1. Private Sub Button_irgendwas_Click(sender As Object, e As EventArgs) Handles Button_irgendwas.Click
    2. Button_Reindrueck_Effekt(sender)

    chaotium schrieb:

    Also wenn der Button eingedrückt wird.
    Sollen zwei Button gleichzeitig gedrückt sein?
    ====
    Poste eine vollständige und belastbare Aufgabenstellung.
    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!