Veremos un ejemplo que permite:
- Reagrupar los eventos Click y TextBox_Changed de seis TextBox en un solo Sub
- Incorporar seis etiquetas label en una colección lo que permite tener index
Pasos previos
Abrir un nuevo proyecto Windows form.
Pegar seis textbox, el nombre no tiene importancia pero en la propiedad Tag poner su N° de 1 a 6.
Pegar seis etiquetas a la derecha de los textbox, el nombre no tiene importancia pero en la propiedad Tag poner su N° de 1 a 6.
Pegar una etiqueta (en la parte de abajo) con el nombre Label14
Las seis etiquetas a la izquierda de los TextBox son opcionales y solo sirven como referencia.
El código del FormLoad
Este ejemplo es para seis textbox y seis label pero también es válido para una cantidad ilimitada y no necesitará una solo línea de código adicional.
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim Ctr As Control
For Each Ctr In Me.Controls
If TypeOf Ctr Is TextBox Then
'Inicializa los eventos de los TextBox
AddHandler Ctr.TextChanged, AddressOf AllTextBox_TextChanged
AddHandler Ctr.Click, AddressOf AllTextBox_Click
ElseIf TypeOf Ctr Is Label Then
If Ctr.Tag <> "" Then
'Inicializa las propiedades de los labels
LbGroupe.Add(Ctr, Ctr.Tag)
End If
End If
Next
End Sub
El código de los eventos Click y cambio de los TextBox
Private Sub AllTextBox_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
LbGroupe(sender.tag).text = sender.text
End Sub
Private Sub AllTextBox_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Label14.Text = "Ha seleccionado el TexBox N° " & sender.tag
End Sub
Como dijimos anteriormente ni una línea adicional.
Descarga
Si no deseas escribir el código, puedes descargar la solución.
Atención: debes descomprimir el archivo zip.
Haz clic
aquí para descargar la solución.
Véase también
Comunidad de asistencia y consejos.
El artículo original fue escrito por
lermite222. Traducido por
Carlos-vialfa.