Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
EventHandler wird nicht aufgerufen
MonkeyT
myCSharp.de - Member



Dabei seit:
Beiträge: 7

Themenstarter:

EventHandler wird nicht aufgerufen

beantworten | zitieren | melden

Hallo!

Also ich habe die Suchfunktin benutzt. Doch komme nicht weiter.
Es geht um Kommunikation zwischen Form1 und Form2. Genau von Form2 -> Form1.
Also, indirekt über Events:

In Form1:


private void button1_Click(object sender, EventArgs e)
{
  Form2 frm = new Form2();
  frm.Show();
}

private void Form2_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
  Console.WriteLine("Jau");
}

Ich habe Form2_Closing und frm_Closing versucht...
Aber die Methode wird nie aufgerufen, wieso? Muss in Form2 noch was gemacht werden damit es das Event feuert?


grz
Monkey
private Nachricht | Beiträge des Benutzers
[email protected]
myCSharp.de - Member



Dabei seit:
Beiträge: 407

beantworten | zitieren | melden

Hi...

sag mal hast du die Code-Schnippsel irgendwo aus dem Internet kopiert?


Events ist der richtige Ansatz.

Form hat 2 Events die du vewenden kannst:
- FormClosed
- FormClosing

Diese werden immer gefeuert.
Damit du aber darauf reagieren kannst musst du
sie natürlich auch abonnieren.


Form2 frm = new Form2();
frm.FormClosing += new FormClosingEventHandler(frm_FormClosing);
frm.Show();
private Nachricht | Beiträge des Benutzers
MonkeyT
myCSharp.de - Member



Dabei seit:
Beiträge: 7

Themenstarter:

beantworten | zitieren | melden

Jawoll danke, damit habe ich es geschafft...
Ne die Schnippsel habe ich selber zu Verantworten :)

So funktionierts (alles in Form1)


private void button3_Click(object sender, EventArgs e)
{
  Form2 frm = new Form2();
  frm.FormClosed += new FormClosedEventHandler(frm_FormClosed);
  frm.Show();
}

void frm_FormClosed(object sender, FormClosedEventArgs e)
{
  Console.WriteLine("Form2 wurde geschlossen!");
}
private Nachricht | Beiträge des Benutzers
Grumbler85
myCSharp.de - Member



Dabei seit:
Beiträge: 550
Herkunft: Rheingau Taunus

beantworten | zitieren | melden

Nur mal so als Hinweis:

C# als Sprache arbeitet nicht mit Namenskonventionen, um Events zu binden - das musst du also schon mitteilen.
Im Normalfall (also für die Events die du per Doppelklick aus VisualStudio erzeugst) werden die Event-Abonements in der Form.Designer.cs abgelegt.

Vielleicht solltest du auch die Grundlagen-Bücher lesen:
Der Vorteil der Klugheit liegt darin, dass man sich dumm stellen kann - umgekehrt ist das schon schwieriger (K. Tucholsky)
Das Problem mit Internet-Zitaten ist, dass sie oftmals zu unrecht als authentisch angenommen werden. (K. Adenauer)
private Nachricht | Beiträge des Benutzers

Moderationshinweis von MarsStein (03.08.2011 - 09:44:19):

Bitte beachte auch [Hinweis] Wie poste ich richtig? Punkt 1.1 und 1.1.1
Über die Forensuche oder einen Blick in die FAQ hättest Du auch auf jeden Fall [FAQ] Eigenen Event definieren / Information zu Events finden sollen.