Dim alert As New AlertForm()
alert.Show()
' gör det du ska...
alert.Close()
Eller det allra bästa, använd BackgroundWorker
5 svar · 967 visningar · startad av Dr-man
Finns det nåt bra sätt att få fram en meddelande ruta, medan nån process körs i Visual Basic Net 2010?
Denna meddelanderuta skall försvinna efter att processen har körts.
Dim alert As New AlertForm()
alert.Show()
' gör det du ska...
alert.Close()
Eller det allra bästa, använd BackgroundWorker
Måste känna mig väldigt snäll idag. (eller om det beror på att det inte var något att ha på tv)
Skrev ihop en liten enkel demo app för att visa hur man kan göra en "progress alert" i en WinForm.
Tack för svaren. Men jag behöver endast en ruta, som säger följande "Var god och vänta! Det kan ta en stund!". När processen är klar så försvinner rutan. Jag har fått det nästan att fungera men i stället för texten, så syns endast vitt område där texten borde uppenbara sig.
Är det nånting fel i koden?
Dim Alert As New Form()
Dim AlertText As New Label()
Alert.Text = "Visa status"
Alert.MaximizeBox = False
Alert.MinimizeBox = False
AlertText.AutoSize = True
AlertText.BackColor = Color.Black
AlertText.ForeColor = Color.White
AlertText.Text = "Var god och vänta! Det kan ta en stund!"
AlertText.Location = New Point(50, 50)
Alert.Controls.Add(AlertText)
Alert.Show()
processen körs
Alert.Close()
Testa Alert.Update() efter Alert.Show().
Problemet är nämligen att formuläret aldrig får någon chans att rita sig självt och sina kontroller eftersom du inte behandlar fönstermeddelanden under processens gång.
Det är just pga sånt som man ska använda backgroundworker.
Så jag tycker du ska använda backgroundworker, du behöver ju inte använda ProcessChanged eventet. Kör din process i DoWork eventet och släck din meddelanderuta i RunWorkerCompleted eventet.