webForumDet fria alternativet

Visa meddelanderuta när en process körs?

.NET

5 svar · 967 visningar · startad av Dr-man

Medlem sedan juli 2002732 inlägg
Frågan#1

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.

Medlem sedan juni 20006 031 inlägg
#2
Dim alert As New AlertForm()
alert.Show()
' gör det du ska...
alert.Close()

Eller det allra bästa, använd BackgroundWorker

Medlem sedan juni 20006 031 inlägg
#3

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.

Koden finns att läsa eller ladda ner

process_scr.png
Medlem sedan juli 2002732 inlägg
#4

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()
Medlem sedan feb. 200711 inlägg
#5

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.

Medlem sedan juni 20006 031 inlägg
#6

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.

266 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)