Asignar evento a matriz de controles VB.Net
Estoy intentando asignar, a una variable matriz de controles, un evento para que verifique que solo se ingresan números en las cajas de texto de la matriz.
Este es el código:
Public Sub Crear_elementos()
For index = 1 To 10
Etiquetas_Periodos(index) = New Label : Etiquetas_roles(index) = New Label
Cajas_Texto_Periodos(index) = New TextBox : Cajas_Texto_Roles(index) = New TextBox
Etiquetas_Periodos(index).Name = "LBPeriodo" + index
Etiquetas_Roles(index).Name = "LBRole" + index
Cajas_Texto_Periodos(index).Name = "TBPeriodo" + index
Cajas_Texto_Roles(index).Name = "TBRole" + index
Etiquetas_Periodos(index).Text = "Periodo " & index & ":"
Etiquetas_roles(index).Text = "Role " & index & ":"
Etiquetas_Periodos(index).Width = 79 : Etiquetas_roles(index).Width = 79
Cajas_Texto_Periodos(index).Width = 50 : Cajas_Texto_Roles(index).Width = 50
Etiquetas_Periodos(index).Height = 16 : Etiquetas_roles(index).Height = 16
Cajas_Texto_Periodos(index).Height = 22 : Cajas_Texto_Roles(index).Height = 22
Cajas_Texto_Periodos(index).AutoSize = False
Cajas_Texto_Roles(index).AutoSize = False
Etiquetas_Periodos(index).BorderStyle = BorderStyle.None
Etiquetas_Periodos(index).Font = New Font("Arial", 10, FontStyle.Bold)
Etiquetas_roles(index).BorderStyle = BorderStyle.None
Etiquetas_roles(index).Font = New Font("Arial", 10, FontStyle.Bold)
Cajas_Texto_Periodos(index).BorderStyle = BorderStyle.Fixed3D
Cajas_Texto_Periodos(index).Font = New Font("Arial", 10, FontStyle.Bold)
Cajas_Texto_Roles(index).BorderStyle = BorderStyle.Fixed3D
Cajas_Texto_Roles(index).Font = New Font("Arial", 10, FontStyle.Bold)
FrmEntradaDatos. Controls. Add(Etiquetas_Periodos(index)) : FrmEntradaDatos. Controls.Add(Etiquetas_roles(index))
FrmEntradaDatos.Controls.Add(Cajas_Texto_Periodos(index)) : FrmEntradaDatos.Controls.Add(Cajas_Texto_Roles(index))
AddHandler Cajas_Texto_Periodos(index).KeyPress, AddressOf SoloNumeros(e)
Next
y este es el codigo del procedimiento:
Public Sub SoloNumeros(ByRef e As System.Windows.Forms.KeyPressEventArgs)
'Funcion para que solo permite el ingreso de caracteres tipo numerico
If Char.IsDigit(e.KeyChar) Then
e.Handled = False
ElseIf Char.IsControl(e.KeyChar) Then
e.Handled = False
Else
e.Handled = True
MsgBox("Solo se puede ingresar valores de tipo número", MsgBoxStyle.Exclamation, "Ingreso de Número")
End If
End Sub
¿Qué deberia cambiar en el For para que funcione correctamente?