Cita de: Eleкtro en 29 Marzo 2016, 19:52 PM
...
En resumen, que es lo más normal del mundo, aunque para entenderlo mejor habría que conocer el código fuente de la función SendMessage para ver como funciona, y sobre todo entender a fondo como funciona la cola de mensajes para ventanas Win32, cosa que yo no se a ciencia cierta, lo que si se es que si dejas el tiempo necesario para que se procese el mensaje y se pueda actualizar la UI (unos ms), entonces puedes comprobar como si que se completa la barra de progreso hasta el final:Código (vbnet) [Seleccionar]Public NotInheritable Class Form1 : Inherits Form
Friend WithEvents Timer1 As New System.Windows.Forms.Timer With {.Interval = 20}
Private Sub Form1_Shown(ByVal sender As Object, ByVal e As EventArgs) _
Handles MyBase.Shown
Me.ProgressBar1.Step = 1
Me.Timer1.Start()
End Sub
Private Sub IncreaseProgressBar(ByVal sender As Object, ByVal e As EventArgs) _
Handles Timer1.Tick
Me.ProgressBar1.PerformStep()
If (Me.ProgressBar1.Value = Me.ProgressBar1.Maximum) Then
Me.Timer1.Stop()
MsgBox("done") ' unos ms despues de saltar el msgbox verás como se completa la barra.
MyBase.Close()
End If
End Sub
End Class
Saludos.
Ya he probado el código y ocurre igual, el mensaje se muestra antes que que termine la barra. Igual es cosa de mi compu o puede que del framework, porque no recuerdo que antes pasara. Como solución me fabricaré mi propia barra (que ya tengo un snippet echo para eso) y listo, ya que he comprobado que funciona usando un estilo gráfico propio y el picturebox, en lugar del progressbar.
S2s