Manuelles Auslösen des OnClick Events



  • Hi Leute!

    Habe eine kleine Frage, bei der ihr mir bestimmt weiterhelfen könnt.

    Ich habe eine Form mit verschiedenen Buttons generiert.
    Nun möchte ich in einer Funktion das OnClick Ereignis eines Buttons manuell auslösen. Und genau das ist mein Problem, habe schon alles mögliche ausprobiert, aber nichts klappt.
    Kann mir jemand sagen wie man das Ereignis auslöst? Es gibt bestimmt eine sehr einfache Lösung dafür,welche ich aber einfach nicht finde.

    Unter Visual C++ 6 und MFC habe ich einfach den Namen des Buttons genommen und die Methode OnClick aufgerufen,dies geht aber leider unter Visual C++ 2005 und .NET nicht so einfach, was mache ich falsch ? 😕



  • Einfach die MEthode aufrufen, den sender und die Eventargs angeben - fertig.

    Was Du falsch machst ? Du postest weder Fehlermeldung noch Quellcode der das Problem zeigt. (Kurze ausschnitte bitte 🤡



  • Schonmal danke für deine Rückmeldung.

    Ich habe einen Audioplayer als Windows Forms Anwendung geschrieben.
    Dieser verfügt unter anderem über den Button mit Namen btnPlay.
    Nun soll eine anderer Button namens btnFore den nächsten Playlisteneintrag selektieren und danach so tun als hätte der Benutzer btnPlay gedrückt.

    Das ganze sieht so aus:

    // Benutzer hat btnFore angeklickt
    if(FSOUND_IsPlaying(iKanal) == true && bZufall == false)
    {
      if (iWiedergabeIndex < lstPlaylist->Items->Count-1)
      {
        lstPlaylist->SetSelected(iWiedergabeIndex+1,true);
        iWiedergabeIndex++;
        // Hier Button Click aufrufen
      }
    }
    

    Und nun muss ich bestimmt btnPlay->OnClicked() aufrufen.
    Aber wie übergebe ich die richtigen Parameter?

    MfG
    Dexter1982



  • Buttons haben die Methode PerformClick - die suchst du. Aber in deinem Fall braucsht du das doch gar nicht. Lager einfach das was du im Eventhandler deines Button Clicks hast in eine Funktion aus und ruf die dann auf.



  • Zwergli schrieb:

    Buttons haben die Methode PerformClick - die suchst du. Aber in deinem Fall braucsht du das doch gar nicht. Lager einfach das was du im Eventhandler deines Button Clicks hast in eine Funktion aus und ruf die dann auf.

    Das ist sowieso dringendst zu empfehlen. Trenne strikt GUI-Code und Anwendungs-Code! ⚠

    MfG SideWinder



  • Juhu es funktioniert!

    Ein Riesendankeschön euch dreien für eure Mühe und Tips!
    Bin noch totaler Anfänger in der C++ Programmierung und gerade was sinnvolle
    Aufgliederung des Quellcodes angeht bin ich (noch) ne Niete 🙂

    Ich muss aber sagen:
    Zwerglis Antwort war die Topantwort.
    Ein simpler Aufruf von

    btnPlay->PerformClick();
    

    war die Lösung all meiner Probleme 👍

    Nochmal vielen Dank!


Log in to reply