www.mikrocontroller.net

Forum: PC-Programmierung On_Click Ereigniss auf einer anderen Form abfragen


Autor: Nussknacker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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
if (Form2->Button1->Click)
{
   Form2->Close();
}

Wie macht man so etwas in VC++?

Ich würde mich sehr ber eine Antwort freuen,

Gruß

Nussknacker

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du musst nicht "abfragen", ob der Knopf angeklickt wird, sondern in 
dessen Eventhandler (dürfte OnClick oder so ähnlich heißen) den 
Schließbefehl einbauen.

Autor: freshmeat (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo

Danke für deine Antwort, das mit dem Schließen hat geklappt, aber jetzt 
steht im Codeabschnitt des buttons nicht nur der Closebefehl:
serialPort1->baudrate = frm2->comboBox1->SelectedItem();
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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.