lakarando Geschrieben 31. Mai 2006 Teilen Geschrieben 31. Mai 2006 Hallo, wie kann ich eine Messagebox zeitgesteuert aurufen, so dass das Programm , wenn der Anwender auf eine Frage nicht reagiert, mit einer Default-Antwort weitermacht? Ich denke mir, dass die normale MsgBox ungeeignet sein wird, wie löse ich es dann ? Eine eigene Form laden und per Timer wieder abschiessen ? Danke schon mal Gruss Thoralf Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Spachten Geschrieben 31. Mai 2006 Teilen Geschrieben 31. Mai 2006 Du könntest die msgbox auch in einem asynchronen Thread aufrufen. Dann kannst du den Timer im Hauptformular setzen und den 2. Thread von dort aus beenden. Ne kleine Hilfe von MSDN gibs dafür hier. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MarkusLe Geschrieben 1. Juni 2006 Teilen Geschrieben 1. Juni 2006 Ziemlich dreckige lösung finde ich. Erbe lieber von der Messagebox, füg den Teimer und ne Property hinzu in der du die Zeit setzen kannst, dann überschreib einfach die Show Methode und starte darin den Timer, welcher später deine MessageBox wieder schließt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Spachten Geschrieben 1. Juni 2006 Teilen Geschrieben 1. Juni 2006 was heißt dreckigie lösung? ich lass meinen code normalerweise nie in UI-thread ausführen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lakarando Geschrieben 1. Juni 2006 Autor Teilen Geschrieben 1. Juni 2006 nich zanken @MarkusLe das klingt mir als die eleganteste Lösung, allerdings überfordert diese Grobbeschreibung die Dev-Kenntnisse eines Systemintegrators. Hätteste villeicht ein paar Codebrocken für mich , damit mir die grundsätzliche Vorgehensweise klar wird ? Wär super. Danke schon mal Gruss Thoralf Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MarkusLe Geschrieben 1. Juni 2006 Teilen Geschrieben 1. Juni 2006 @Spachten Es ist aufjedenfall nicht besonders schön einen Thread einfach abzuschießen. Wenn du es ganz sauber machen wolltest müsstest du natürlich noch zusätzlich einen Controller für die MessageBox schreiben. @lakarando Ich musste leider gerade feststellen das man von MessageBox nicht erben kann. Daher müsstest du dir wohl selbst nen kleinen Dialog zusammenklicken. Den kannst du dann ja wieder von einem Controller steuern lassen., der den Timer enthält (wenn dus ganz sauber haben willst). Ansonsten auch in Anbestracht der Tatsache das du dir als FISI nicht unbedingt die Gedanken über sawos machen musst, kannst das ja auch direkt im Dialog machen. Um dir Code zu posten fehlt mir leider die Zeit. Vielleicht kann dir da ja Spachten weiterhelfen^^ Gruß Markus Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Spachten Geschrieben 1. Juni 2006 Teilen Geschrieben 1. Juni 2006 @ MarkusLe: du musst den Thread ja nicht hart abschiessen. Die MessageBox könnte sich ja beim Cancel_Request sauber verabschieden. Natürlich nur wenn MsgBox in der Lage dazu ist. Sonst einfach ein neues Form als Dialog verwenden. @ Topic: Ich hab auch nicht wirklich Zeit um viel zu coden. Ein zweites Windows-Form zum Projekt hinzufügen und Timer draufpacken. Im Konstruktor wird die gewünchte Zeit entgegengenommen. Ich hoffe das hilft. 'Klasse Form2.vb Public Class Form2 Public Sub New(ByVal zeit As Integer) ' Dieser Aufruf ist für den Windows Form-Designer erforderlich. InitializeComponent() ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. Timer1.Interval = zeit End Sub Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick Me.Close() End Sub Private Sub Form2_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Timer1.Start() End Sub End Class 'Klasse Form1.vb Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim objForm As New Form2(10000) objForm.Show() End Sub Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lakarando Geschrieben 1. Juni 2006 Autor Teilen Geschrieben 1. Juni 2006 Das mit der zweiten Form wäre auch mein Ausweg gewesen, wenn es keine andere Möglichkeit gibt. Dann mach ich es so, danke dennoch für Zeit und Mühe. Gruss Thoralf Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.