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?

Añade tu respuesta

Haz clic para o