Benutzer mit den meisten Antworten
Click-Ereignis manuell auslösen

Frage
-
Hallo,
ich möchte das Click-Event wiederholt manuell auslösen, aber bekomme es nicht so hin wie ich es will.
Es geht um folgendes:
Ich bin dabei ein kleines Statik-Programm zu schreiben, es ist fast fertig und ich will eine Test-Funktion einbauen. Diese Test-Funktion soll, wenn sie aufgerufen wird, die Eingabefelder auf der Benutzeroberfläche füllen und die Berechnung auslösen. Dazu muss ich das Click-Event mehrmals auslösen, aber ich weiß nicht wie.
So wie ich es jetzt geschrieben habe, wird das Click-Event einmal ausgelöst, wenn ich auf den Button "Test" drücke. Es soll aber öfter ausgelöst werden. Der Button "KnErstellen" fügt einen Knoten, nachdem der Benutzer seine Eingaben gemacht hat, ein. Die Benutzerfelder kann ich über die Test-Funktion füllen. Das Problem ist nur, dass so wie es jetzt geschrieben ist, der Click nur einmal ausgelöst wird.
this->Test->Location = System::Drawing::Point(78, 278);
this->Test->Name = L"Test";
this->Test->Size = System::Drawing::Size(75, 23);
this->Test->TabIndex = 7;
this->Test->Text = L"Test";
this->Test->UseVisualStyleBackColor = true;
this->Test->Click += gcnew System::EventHandler(this, &Form1::Test_Click);
this->Test->Click += gcnew System::EventHandler(this, &Form1::buttonKnErstellen_Click);Wie schaffe ich es, dass ich das Click-Event so oft ich will manuell auslösen kann? PerformClick?
Danke im Voraus
Antworten
-
Hallo,
verlagere die Logik des Click Events in eine Funktion.
Danach rufst Du aus dem ClickEvent diese neue Funktion auf.
Deine Testroutine ruft dementsprechende die neue Funktion auf.Alternativ: Aufruf des Eventhandler siehe http://msdn.microsoft.com/de-de/library/vstudio/ms171548(v=vs.100).aspx
Grüße Alexander
- Als Antwort vorgeschlagen Stefan FalzModerator Samstag, 15. November 2014 12:28
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Moderator Mittwoch, 10. Dezember 2014 07:53
-
Hallo,
unter WinForms ist es das Einfachste die PerformClick-Methode des Buttons aufzurufen:this->Test->PerformClick();
Eventuell wäre es jedoch besser den Code des Eventhandlers in eine eigene Methode auszulagern und diese dann aus dem EventHandler heraus und statt PerformClick aufzurufen.Tom Lambert - C# MVP
Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets- Als Antwort vorgeschlagen Stefan FalzModerator Samstag, 15. November 2014 12:28
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Moderator Mittwoch, 10. Dezember 2014 07:53
Alle Antworten
-
Hallo,
verlagere die Logik des Click Events in eine Funktion.
Danach rufst Du aus dem ClickEvent diese neue Funktion auf.
Deine Testroutine ruft dementsprechende die neue Funktion auf.Alternativ: Aufruf des Eventhandler siehe http://msdn.microsoft.com/de-de/library/vstudio/ms171548(v=vs.100).aspx
Grüße Alexander
- Als Antwort vorgeschlagen Stefan FalzModerator Samstag, 15. November 2014 12:28
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Moderator Mittwoch, 10. Dezember 2014 07:53
-
Hallo,
unter WinForms ist es das Einfachste die PerformClick-Methode des Buttons aufzurufen:this->Test->PerformClick();
Eventuell wäre es jedoch besser den Code des Eventhandlers in eine eigene Methode auszulagern und diese dann aus dem EventHandler heraus und statt PerformClick aufzurufen.Tom Lambert - C# MVP
Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets- Als Antwort vorgeschlagen Stefan FalzModerator Samstag, 15. November 2014 12:28
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Moderator Mittwoch, 10. Dezember 2014 07:53
-
Hallo,
danke erstmal für die schnelle Antwort, ich muss ehrlich gestehen, dass ich nicht so ganz fit mit diesen "Events" bin.
So wie ich das verstehe, benötige ich einen "Sender" also ein Event, der meldet das geklickt wurde.
Aber wie schreibe ich das, muss ich den vorher initialisieren? Was muss ich der Methode übergeben?
Gruß
Soenke