Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: karlos en 03 de Febrero 2013, 22:35
-
Hola,
Utilizo visual basic 2010 y estoy intentado obtener lo siguiente:
50
51
...
60
con el siguiente codigo:
Public Class Form1
Dim i As Integer
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
For i = 50 To 60
Label1.Text = i & vbCrLf
Next
End Sub
End Class
El resultado que me da es simplemente 60 por lo tanto únicamente refleja el último valor de i.
No entiendo la razón por la que no me registra cada valor de i
Karlos
-
Puede que se deba a lo siguiente:
For i = 50 To 60
Label1.Text = i & vbCrLf
Next
Esto el ordenador lo traduce de la siguiente manera:
Para i = 50 hasta 60 hacer
Mostrar en el label1 el valor de i y un salto de línea
Siguiente
Lo que puede estar ocurriendo es que te muestra 50, luego reemplazo el 50 por 51, luego reemplaza el 51 por 52... así hasta que finalmente te muestra 60. El problema es que en cada ocasión reemplaza lo anterior.
Prueba esta solución:
For i = 50 To 60
Label1.Text = Label1.Text & i & vbCrLf
Next
De esta manera le estarías indicando "muestra el contenido previo, el valor actual de i y un salto de línea". Es decir, tienes que indicar explícitamente que se debe mostrar todo lo que existiera ya anteriormente y además el nuevo valor de i, si no lo indicas explícitamente te reemplaza lo que hubiera en el label.
-
Cesar,
Gracias por la respuesta.
Lo he probado y a funcionado.
Karlos