Ich habe Probleme, einen Weg zu finden, um mit C # die Forms-Funktionalität zu erstellen, die ich verwenden möchte.
Grundsätzlich möchte ich ein modales Dialogfeld mit einer bestimmten Zeitüberschreitung haben. Es scheint, als ob dies leicht zu tun sein sollte, aber ich kann es nicht funktionieren lassen.
Sobald ich this.ShowDialog(parent)
aufgerufen habe, stoppt der Programmfluss und ich kann den Dialog nicht mehr schließen, ohne dass der Benutzer zuerst auf eine Schaltfläche klickt.
Ich habe versucht, einen neuen Thread mit der BackgroundWorker-Klasse zu erstellen, aber ich kann nicht erreichen, dass der Dialog in einem anderen Thread geschlossen wird.
Vermisse ich hier etwas Offensichtliches?
Vielen Dank für Ihre Informationen.
Verwenden Sie einen System.Windows.Forms.Timer . Legen Sie die Eigenschaft Interval als Zeitlimit fest, und geben Sie Aktivieren Sie den Event-Handler, um den Dialog zu schließen.
%Vor%Der Timer wird im Benutzeroberflächen-Thread ausgeführt, sodass das Formular über den Tick-Ereignishandler sicher geschlossen werden kann.
Sie müssen die Close-Methode für den Thread aufrufen, der das Formular erstellt hat:
%Vor%Wenn Sie wirklich nur einen modalen Dialog wollen, dann fand ich das bei weitem die beste Lösung: Ссылка (lesen Sie den Kommentar für eine kleine Änderung).
Wenn Sie Ihre eigene Form modal anzeigen möchten, dann ist die Lösung von adrianbanks am besten.
Tags und Links c# user-interface winforms