miércoles, 21 de enero de 2015

[vb 2012] actualizar un label en medio de un proceso

Label1.caption = "bla bla bla"
... esto funcionaba sin problemas en vb 6 cuando queriamos cambiarle el texto a un label en medio de la ejecucion de un programa. pero en visual basic 2012 (net) no es tan sencillo el ".caption" desaparece y venimos a tratar el label como un textbox.

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        label1.Text = "cualquier cosa"
    End Sub

funciona este codigo , podria parecer una solucion, pero en realidad algo cambio en vb que si bien hace el "update" en el texto de ese label , solo lo hace al finalizar todo el bloque del evento. por lo que si llegaramos a tener mas instrucciones en un control , no seria algo funcional siempre.
una alternativa es mandar a refrescar el formulario inmediatamente.


 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        label1.Text = "cualquier cosa"
Me.Refresh()
    End Sub
y nada! , hemos obligado al formulario a repintarse ( con los cambios que conlleva)...