2012-12-26 8 views
5

Ich habe eine Winforms-Anwendung, die die Abonnementdaten verwaltet. Das Hauptformular prüft, ob sich der Benutzer im Datenspeicher (XML-Datei) befindet, wenn ich dies nicht anrufe. UserDetails ist ein Dateneingabeformular.ShowDialog() Das Formular nicht über dem Hauptformular anzeigen

Das Problem ist das UserDetail-Formular ist nicht oben und ich kann das Hauptformular auswählen.

+1

Ich habe Ihren Titel bearbeitet. Bitte lesen Sie "[Sollten die Fragen" Tags "in ihren Titeln enthalten?] (Http://meta.stackexchange.com/questions/19190/)", wobei der Konsens "nein, sie sollten nicht" lautet. –

+0

Das werde ich von jetzt an beachten. – Frazzle

+0

Legen Sie einen Haltepunkt für diesen Code fest. Wenn es ankommt, benutze Debug + Windows + Threads. Stellen Sie sicher, dass es auf dem Hauptthread ausgeführt wird. –

Antwort

7

Dies kann passieren, wenn Ihr Hauptformular TopMost ist.

Versuchen Sie es mit

frm.ShowDialog(this); 

, wenn sie von der Hauptform genannt.

Dies stellt sicher, dass der Dialog ein visuelles Kind des Hauptformulars ist, und selbst wenn das Hauptformular TopMost ist, wird der Dialog darüber sein.

+0

Wenn Sie 'fmr.ShowDialog()' aus einem 'TopMost = true'-Formular aufrufen, wird das Dialogfeld immer noch auf das TopMost-Formular gesetzt. Also ich denke nicht, dass das das Problem ist. –

+0

@Rotem Danke ich habe versucht frm.ShowDialog (this); aber es ist das gleiche Ergebnis. Ich beginne mich zu fragen, ob das ein vs2012 Bug ist. – Frazzle

+0

@Frazzle - Überprüfen Sie, welches der Formulare das Problem verursacht: Versuchen Sie, das Dialogfeld von einem neuen Standardformular zu starten, und umgekehrt, versuchen Sie, einen Standarddialog von Ihrem Hauptformular aus zu starten. – Rotem

Verwandte Themen