Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

VB.Net: Messagebox zeitgesteuert

Empfohlene Antworten

Veröffentlicht

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

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.

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.

was heißt dreckigie lösung?

ich lass meinen code normalerweise nie in UI-thread ausführen.

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

@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

@ 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

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. thumbs.gif

Gruss

Thoralf

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.