DelayMessageBox

    • Release

    Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von Dodo.

      DelayMessageBox

      Name des Programms:
      DelayMessageBox

      Beschreibung:
      Aus gegebenen Anlass habe ich mal eine relativ einfache DLL erstellt. Diese beinhaltet eine MessageBox die nach einer benutzerdefinierten Zeit automatisch verschwindet. Sie funktioniert fast genauso wie MessageBox.Show(), dies war auch mein Bemühen ein Äquivalent hierzu zu erstellen.

      UPDATE:
      Nun ist es möglich das verschwinden der MessageBox zu ermitteln. Entweder mit einem eigenen EventHandler oder aber auch mit dem DelayBoxResult (Beispiele siehe unten)

      Screenshot:
      - kein Screenshot möglich -

      Einbindung:
      Zunächst muss die DLL zusammen mit der XML Datei in einen gewünschten Ordner entpackt werden.
      Danach über Projekt -> Verweise - >"DelayMessageBox.dll" in das aktuelle Projekt einbinden.
      In dem Code wo sie verwendet werden soll den Import deklatieren

      VB.NET-Quellcode

      1. Imports DelayMessageBox


      Danach kann man sie Aufrufen:

      Globale Deklaration:

      VB.NET-Quellcode

      1. Friend WithEvents DelayMsgBox As New DelayMsgBox


      VB.NET-Quellcode

      1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      2. Dim DelayResult As DelayBoxResult
      3. DelayResult = DelayMsgBox.Show("Hallo ich verschwinde in 10 Sekunden. Soll ich vorher verschwinden?", "Error", 10, DelayBoxButtons.YesNo, DelayBoxIcons.InformationMark)
      4. If DelayResult = DelayBoxResult.ButtonYes Then
      5. MessageBox.Show("Es wurde 'Ja' geklickt")
      6. ElseIf DelayResult = DelayBoxResult.TimeDelayed Then
      7. MessageBox.Show("Die MessageBox hat sich automatisch geschlossen")
      8. End If
      9. End Sub
      10. Private Sub DelayMsgBox_Delayed(ByVal delay As Integer) Handles DelayMsgBox.Delay
      11. ' hier irgendwas rein, was ausgeführt wird, wenn die MessageBox automatisch verschwindet.
      12. End Sub


      Funktionsparameter:
      DelayMsgBox.Show(text As String, Optional caption As String = "", Optional delay As Integer = -1, Optional button As DelayBoxButton = DelayButton.Ok, Optional icon As DelayBoxIcon = DelayBoxIcon.InformationMark)

      Verwendete Programmiersprache:
      Visual Basic 2008

      Systemanforderungen:
      .NET Framework 3.5

      Download:
      DelayMessageBox (5,4kB / 17kB)

      Lizenz/Weitergabe:
      Freeware

      Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „Dodo“ ()

      Chrisber schrieb:

      Hi.
      Wie wärs mit einem "DelayBoxResult.TimeDelayed"-Result?

      ~ Chris
      Was meinst du damit? Wieviel Zeit bereits abgelaufen ist oder wie?
      Also die Funktion bietet die aber nicht. Es ist ja im Prinzip nur dieses kleine WScript.Shell aus meinem Thread mit 3 Enums für die Variablen. Aber war halt mal eine gute Möglichkeit selber eine DLL zu machen und eben sie so anzupassen wie die normale MessageBox und man muss nicht jedesmal soviel Zeilen Code ins Projekt einfügen!

      Edit: Die DLL ist aus diesem Script entstanden [VB 2008] MessageBox alleine verschwinden lassen
      Achso, joa das macht Sinn =)

      Nur habe ich absolut kein Plan wie ich ein Event mache, das muss ja in der aufrufenden Form deklariert werden und dann ... joa ... weiß nicht wie man solche Events erstellt. Wenn mir jemand helfen mag, gerne =)

      Dodo schrieb:

      das muss ja in der aufrufenden Form deklariert werden

      Nein
      Deklariert wird es in der Klasse wo es ausgelöst wird. In der Form muss nur der Eventhandler sein - entweder automatisch mit WithEvents oder manuell mit AddHandler

      In der Klasse
      Event EinEvent()

      Aufruf in der Klasse:
      RaiseEvent EinEvent()

      Bringt aber nix, wenn die MsgBox modal aufgerufen wird.