Eventhandling und Windows

Vielleicht hilft es ja auch, wenn ich mal den Weg durch das Programm beschreibe. Das Form1 wird völlig normal aufgebaut. Wenn ich dann auf den Telnet-Button klicke, dass springt er in die entsprechende Methode. Dort hab ich einen Breakpoint bei t.Receive() gesetzt. Und wenn ich dort in Einzelschritten fortfahre, dann passiert folgendes:

t.Receive() wird offensichtlich ausgeführt. Da direkt Daten von der Telnet-Schnittestelle kommen, wird das Programm im dataavailabe-Handler fortgesetzt, ohne dass die aktuelle Methode zu Ende ausgeführt wird. In diesem Handler wird anhand der gelieferten Daten korrekt erkannt, dass ein weiteres Fenster benötigt wird. Dieses wird auch instanziert. Dann wird das Programm wieder an der ürsprünglichen Stelle fortgesetzt. Das Form2-Fenster wird zu diesem Zeitpunkt noch nicht korrekt angezeigt. Erst wenn ich im Einzelschritt die Methode für den telnet-Button durchgehe, wird am Ende der Methode das Fenster Form2 korrekt und vollständig angezeigt.

Ich vermute nun, das wenn ich das nicht manuell mache, dass die Programmausführungen nur noch den Handler dataavailable ausführt und dann aber nicht die Methode für den telnet-button zu Ende abgearbeitet wird.

Gibt es da Möglichkeiten, dass zwangsweise zu bewerkstelligen?
 
Hast du schonmal probiert die Form mit ShowDialog() anzuzeigen? Oder kannst du das nicht gebrauchen? Weil mit Show() läuft die Methode einfach weiter und mit Showdialog wird der Dialog modal aufgerufen.

mfg
wensi
 
Ich hab es jetzt mal mit WinForms und ShowDialog probiert und dann läuft es.

Dank euch für die Unterstützung und die Tipps.
 

Neue Beiträge

Zurück