| 

.NET C# Java Javascript Exception

2
Wie kann man eine Messagebox oder eine zusätzliche Form in einer WinForm-Anwendung anzeigen, so dass die eigentliche Anwendung weiter arbeitet.
Im konkreten Fall möchte ich mit der Anwendung eine Verbindung zu einem Server herstellen. Solange diese Verbindung noch nicht steht, soll nur eine Anzeige kommen "Verbindung zum Server wird hergestellt...".
Alle bisherigen Versuche führten jedoch immer dazu, dass bei Beendigung des Threads oder Backgroundworkers des Fenster stehen blieb (sowohl bei einer separaten Form, als auch bei einer Messagebox).
Für eine Idee wäre ich dankbar.

Torsten Menze
News:
17.07.2011
Torsten Menze 113 1 5
2 Antworten
10
Hallo,

verwende anstatt eriner MessageBox eine Form mit einer Progress-Bar.
Diese Form solltest Du im UI-Thread anlegen und zeigen (ShowDialog).
Im BackgroundWorker stellst Du die Verbindung zum Server her.
Im Completed-Event des Backgroundworkers schließt Du dann die Form wieder (Form als Field merken).

Gruß

CodeSniffer
17.07.2011
CodeSniffer 1,3k 4 9
Danke, so funktionierts!
Torsten Menze 17.07.2011
2
Hallo,

Auf die MessageBox kannst Du leider keinen Einfluss nehmen. Das bedeutet aber nur, dass Du die Funktionalität, die die Messagebox bietet, von Hand nachbauen musst.

Du kannst eine Form so aussehen lassen wie die MessageBox (FormBorderStyle auf FixedToolWindow, oder alle Border Elemente von Hand ausblenden). Dann:

MyMessageBox mb = new MyMessageBox();
mb.ShowDialog();

mit mb.Close(); kannst Du sie dann auch wieder schließen.

Gruß
17.07.2011
LutzJ 1,3k 1 8
LutzJ 1,3k 1 8

Stelle deine Asynchron-Frage jetzt!