Visual basic msgbox "Wegklickbar" machen
Hallo!
Ich habe ein programm geschrieben, das eine progressbar durchlaufen lässt und bei 100% die msgbox "hallo" ausgibt.
Problem war zuerst es öfnnenten sich unendlich boxen was ich gefixt habe, indem ich den timer "resettet" habe er fängt wieder bei 0 an und zählt wieder bis 100.
Nun zu meiner frage wie mache ich es, dass eine msgbox wegklickbar ist so das ich auf die erste form klicken kann um den timer zu stoppen?
Danke 
EDIT:Das ging flott hab den fehler selber behoben, indem ich button2 enfertnt und Timer1.Stop in die if abfrage gesetzt habe
Ich habe ein programm geschrieben, das eine progressbar durchlaufen lässt und bei 100% die msgbox "hallo" ausgibt.
Problem war zuerst es öfnnenten sich unendlich boxen was ich gefixt habe, indem ich den timer "resettet" habe er fängt wieder bei 0 an und zählt wieder bis 100.
Nun zu meiner frage wie mache ich es, dass eine msgbox wegklickbar ist so das ich auf die erste form klicken kann um den timer zu stoppen?
Public Class Form1
Private Sub ProgressBar1_Click(sender As Object, e As EventArgs) Handles ProgressBar1.Click
End Sub
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
ProgressBar1.Increment(1)
If ProgressBar1.Value = 100 Then
ProgressBar1.Value = 0
MsgBox("Hello")
End If
End Sub
Private Sub button1_Click(sender As Object, e As EventArgs) Handles button1.Click
Timer1.Start()
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Timer1.Stop()
End Sub
End Class
EDIT:Das ging flott hab den fehler selber behoben, indem ich button2 enfertnt und Timer1.Stop in die if abfrage gesetzt habe
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 289791
Url: https://administrator.de/forum/visual-basic-msgbox-wegklickbar-machen-289791.html
Ausgedruckt am: 23.04.2025 um 17:04 Uhr
4 Kommentare
Neuester Kommentar
Hi,
um Deine Frage zu beantworten:
Eine Message-Box ist in VB immer modal, sprich an eine Parent-Form gebunden. Wenn Du einen Dialog öffnen möchtest, der sich zwar über eine andere Form legt, diese aber noch bedienbar haben willst, dann musst Du Dir einen eigene Message-Form erstellen, welche Du dann mit .Show (statt .ShowDialog) startest.
Erstelle z.B. eine Form "frmMessage" mit einem Label "lbMessage" und einem Button "btnOK".
Dann erstellst Du im Code der Form eine neue "Public Sub New(ByVal Message as String").
In der Sub gibst Du die übergebene Message an das Label weiter: lbMessage-Text = Message
Die Message-Form verwenden, z.B.
Oder:
Wenn Du das gewollt in einer wiederholten Schleife haben willst, dann ginge das auch so:
Oder einfach:
E.
um Deine Frage zu beantworten:
Eine Message-Box ist in VB immer modal, sprich an eine Parent-Form gebunden. Wenn Du einen Dialog öffnen möchtest, der sich zwar über eine andere Form legt, diese aber noch bedienbar haben willst, dann musst Du Dir einen eigene Message-Form erstellen, welche Du dann mit .Show (statt .ShowDialog) startest.
Erstelle z.B. eine Form "frmMessage" mit einem Label "lbMessage" und einem Button "btnOK".
Dann erstellst Du im Code der Form eine neue "Public Sub New(ByVal Message as String").
In der Sub gibst Du die übergebene Message an das Label weiter: lbMessage-Text = Message
Class frmMessage
Public Sub New(ByVal Message as String)
Me.InitializeComponents
lbMessage.Text = Message
Me.AcceptButton = btnOK
End Sub
Private Sub btnOK_Click Handles btnOK.Click
Me.Hide
End Sub
End Class
Die Message-Form verwenden, z.B.
Dim µF As New frmMessage("Hallo Welt!")
µF.Show
Oder:
Wenn Du das gewollt in einer wiederholten Schleife haben willst, dann ginge das auch so:
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
Static µPause As Boolean = False
If Not µPause Then
ProgressBar1.Increment(1)
If ProgressBar1.Value = 100 Then
µPause = True
ProgressBar1.Value = 0
MsgBox("Hello")
µPause = False
End If
End If
End Sub
Oder einfach:
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
ProgressBar1.Increment(1)
If ProgressBar1.Value = 100 Then
Timer1.Stop
ProgressBar1.Value = 0
MsgBox("Hello")
Timer1.Start
End If
End Sub
E.

Hallo,
ist eventuell zu spät aber passt dennoch;
Damit öffnet sich ein Messagebox und die kann man dann mittels eines
"Ok" Buttons beenden. Abgespeichert als .vbs (visual basic script)
Gruß
Dobby
ist eventuell zu spät aber passt dennoch;
MsgBox "Hallo Welt"
"Ok" Buttons beenden. Abgespeichert als .vbs (visual basic script)
Gruß
Dobby