On_Click Ereigniss auf einer anderen Form abfragen

Gast #721153
Hallo,

ich habe eine Frage. Ich habe 2 Forms in meinem VC++ .Net Projekt 
erstellt. Auf der Form 2 habe ich einen Button, der die Schließen soll.
Auf der anderen habe ich auch noch ein Button, der den anderen Button 
anclicken soll.

Also:

Pseudocode
1
if (Form2->Button1->Click)
2
{
3
   Form2->Close();
4
}

Wie macht man so etwas in VC++?

Ich würde mich sehr ber eine Antwort freuen,

Gruß

Nussknacker
Gast
hallo

Danke für deine Antwort, das mit dem Schließen hat geklappt, aber jetzt 
steht im Codeabschnitt des buttons nicht nur der Closebefehl:
1
serialPort1->baudrate = frm2->comboBox1->SelectedItem();
2
this->Close();

Das hier steht auch noch drin. Gibt es denn trotzdem noch eine 
möglichkeit abzufragen?
Kann mir einer einen tipp geben?

Danke,

freshmeat
Du musst von deiner Abfragemanie loskommen.
In einem eventbasierten System fragst du nicht
die Buttons ab, ob sie gedrückt sind, sondern
die Buttons benachrichtigen dein Programm, dass
sie gedrückt wurden. Konkret: Beim Drücken eines
Buttons wird eine Funktion aufgerufen. In der musst
da alles handhaben was du brauchst.

Wenn du also 2 Forms hast ...

   Form1              Form2
   +------------+     +-------------+
   |            |     |             |
   |            |     |             |
   |            |     |             |
   |            |     |             |
   |            |     |             |
   +------------+     +-------------+

... und die eine Form, Form1, möchte etwas von der anderen
Form, Form2, dann teilt sie dies der anderen Form mit, indem
sie eine Funktion dieser Form aufruft.

Diese Funktion könnte zb. das Schliessen der Form2 veranlassen
(und auch sonst noch andere Dinge tun).



   Form1              Form2
   +------------+     +-------------+
   |            |     |             |
   |            |     |             |
   |            |     |             |
   |            |     |  +---------+|
   |            |     |  | close   ||
   +------------+     +-------------+


Ob diese Funktion jetzt als Reaktion auf einen Buttondruck in
Form2 aufgerufen wird oder ob diese Funktion von der Form1 aus
aufgerufen wird, ist aber der Funktion völlig egal.
Die Aufrufkette kann also zb. so aussehen:

   Form1              Form2
   +------------+     +-------------+
   |+>OnClick   |     |+>OnClick    |
   ||    |      |     ||    |       |
   ||    |      |     ||    v       |
   ||    +-------------->+-DoClose-+|
   ||           |     || | close   ||
   +|-----------+     +|------------+
    |                  |
    |                  |
    |                  |
   Button auf Form1   Button auf Form2

Wird der Button auf Form2 gedrückt, so wird als Folge
davon der zugehörige OnClick Handler in Form2 aufgerufen.
In diesem Handler wird dann wieder als Konsequenz eine
weitere Funktion der Form2 aufgerufen, die macht was immer
du willst (zb. Baudrate sichern, Festplatte formatieren,
Form schliessen9.

Wird hingegen der Button auf Form1 gedrückt, so wird als
Folge davon der zugehörige OnClick Handler in Form1 aufgerufen.
In diesem Handler wird dann besagte Funktion der Form2 aufgerufen.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.