Visual Basic.NET - manejar multiples labels con un for

 
Vista:

manejar multiples labels con un for

Publicado por Rodolfo (9 intervenciones) el 15/12/2010 22:19:46
hola a todos
mi pregunta es la siguiente estoy desarrollando una pagina que tienes 30 label pero les di nombres como label_1,label_2, ..................... label_30
mi problema es el siguiente
yo quiero hacer halgo asi para no tener que estarle escribiendo los nombres a todos y cargarle los datos de esta manera

for i = 1 to 30

label_(i).text = "texto"

next i

pero no encuentro nada como esto en vb.net lo que yo sabia era con un indice pero eso se usa en vb 6.0 pero aqui que puedo utilizar

por sus prontas respuestas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:manejar multiples labels con un for

Publicado por abraham (14 intervenciones) el 16/12/2010 16:53:37
For Each control As Control In Me.Controls
If TypeOf (control) Is Label Then
CType(control, Label).Text = ""
End If
Next
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:manejar multiples labels con un for

Publicado por Rodolfo (9 intervenciones) el 16/12/2010 21:00:37
hola gracias por responder
la idea es que encuentre el label que tu le des y te asigne un valor algo asi como esto pero el problema que tengo con esto que al momento de quitarle la linea donde esta el labe.id funciona si lo interumpes y lo asignas manual en la declaracion del labe eso es lo unico que me falta como le entrego el nombre del control para que le de los valores

For i = 1 To 31
Dim labe As Label <--entregandole el valor manual

labe.id = "label_" & i <------ sacando esta linea funciona si le entregas el valor manual

labe.Text = i
Next i
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:manejar multiples labels con un for

Publicado por abraham (14 intervenciones) el 17/12/2010 16:55:34
La verdad no te entiendo muy bien.

Pero si quieres saber el nombre del label entre todos los labels que hayas creado:

control.Name.Contains("Nombre_de_tu_label_a_buscar"), te regresa True si el nombre del Label es igual al que buscas,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:manejar multiples labels con un for

Publicado por Rodolfo (9 intervenciones) el 17/12/2010 18:35:49
Hola gracias por seguir respondiendo
bueno el nombre del label ya lo conosco yo no necesito buscar el nombre lo que quiero es asignarle el nombre a labe para que este se encarge de cargar los datos en los diferentes labels

te explico de que se trata es una pagina que al consultarle por un mes y como los dias habiles son 30 por que se ocupa para una estadistica el loop va a recorrer cada columna cargando los datos en cada label y luego sigue con las siguientes filas la cuetion es que son 30 * 18 para que te agas una idea de la cantidad de labels que son por eso pense en esto que seria un loop que al ir a consultar a la base de datos me carga los valores que corresponden al dia y este es el ejemplo que tengo

For i = 1 To 30 <---qui iniciamos el loop
Dim labe As Label <--- declaro el label que usare para modificar los valores dentro de los labels
labe.ID = "nombre_del_label_n°_" & i <<<< aqui es donde esta el problema si yo realiso esto me aroja un error (*) por eso no le puedo desir a que label le quiero cambiar el valor
labe.Text = i <-- agui le daria el valor de la base de datos al label
Next i

(*) Object reference not set to an instance of an object.

este es mi correo [email protected]
y de nuevo gracias por responder
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:manejar multiples labels con un for

Publicado por abraham (14 intervenciones) el 17/12/2010 20:17:40
La prodiedad .ID de label hasta donde se no existe en VB 2005.

Dim label_control As Label
Dim posicion As System.Drawing.Point

label_control = New Label
With label_control
.Name = "Label_1"
.Text = "Etiqueta: 1 "
posicion.X = (i * 10)
posicion.Y = (i * 10)
.Location = posicion
End With
Me.Controls.Add(label_control)

Con este creas uno, pero para varios a la vez eso si no sabria decirte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:manejar multiples labels con un for

Publicado por Rodolfo (9 intervenciones) el 18/12/2010 03:52:40
muchas gracias por responder
bueno al final lo termine asiendo con un control dinamico y no poniendolos yo directamente en la pagina en realidad me resulto mas practico que estar pegando un por uno eso label que te imaginas son mucho
el codigo quedo asi para un futuro

Dim tsc_18_x, tsc_18_y As Integer
tsc_18_x = 577
tsc_18_y = 135

For i = 1 To DIA
'Declaro y creo la etiqueta
Dim tsc_18 As New Label

'esto es una clase que consulta a la base de datos
Dim CONSUL_TSC_18 As New complementarios
CONSUL_TSC_18.TSC_18(fecha1,fecha2)

With tsc_18
.Style("Position") = "Absolute"
.Style("Top") = tsc_18_y & "px"
.Style("Left") = tsc_18_x & "px"
'Le establezco algunas propiedades, la de la name es básica
.ID = "label" & i
.Text = CONSUL_TSC_18.CONSULTA_TSC_18
'La añado a la colección de controles del formulario.
End With
Me.Controls.Add(tsc_18)
tsc_18_y = tsc_18_y + 30

Next

gracias por las respuestas y este es el codigo para que construya multibles labels con distintos valores
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de francisco
Val: 6
Ha aumentado su posición en 3 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

RE:manejar multiples labels con un for

Publicado por francisco (162 intervenciones) el 19/12/2010 11:39:26
Mira a ver si esto te sirve hay muchas maneras de hacerlo

1
2
3
4
5
6
7
8
9
10
11
12
Dim y As Integer
y = 4
Dim a As Object
For Each a In Me.Controls
 
    Label = "Label" & y
 
    If a.Name = label Then
        a.Text = y
    End If
    y = y - 1
Next

'tienes que poner 4 label label1,label2,label3,label4
' si quiere poner mas label tienes que subir la y=a los labels que tienes

si te ha sevido comunicalo al foro
Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Rafman
Val: 3
Ha disminuido su posición en 6 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

manejar multiples labels con un for

Publicado por Rafman (2 intervenciones) el 30/07/2020 03:39:41
No se si es lo que buscas ni, si lo sigues haciendo. Pero para otros a quienes les pueda interesar...

1
2
3
4
5
6
7
'Rellenar el texto de varios controles Label.
Dim index As Integer = 0
'"Lbl" es el nombre por el que empiezan los controles (Lbl01, Lbl02 etc.)
For Each lbl As Control In Me.Controls.OfType(Of Label)().Where(Function(l) l.Name.StartsWith("Lbl")).OrderBy(Function(l) l.Name)
    lbl.Text = TexBox1.Text.Substring(index, 1) 'TextBox1.Text = "Label" + index
    index += 1
Next

Foro vb.net de Microsoft
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Carlos
Val: 112
Ha disminuido 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

manejar multiples labels con un for

Publicado por Carlos (41 intervenciones) el 31/07/2020 22:33:59
Muy buenas :

Yo hago lo siguiente creo un array de Label,

Dim aLbInsp() As Label = {LbInsp1, LbInsp2, LbInsp3, ......} ----> estos son los labels que quieres


Creo otro para guardar los que quieres poner
Por ejemplo
Dim arrayLR() = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} ----> y los valores a poner en cada Label

Por supuesto que ambos deberan de tener los mismos elementos

y ya solo debes de realizar lo siguiente

For i As Integer = 0 To CmbInsp.Items.Count - 1
aLbInsp(i).Visible = True -----> para el valor 0, se refiere al Label LbInsp1, etc....

aLbLR(i).Text = CStr(arrayLR(i))

Next

Espero te valga la ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar