У меня есть этот класс:
Public Class common
Public Function NumbersOnlyEvent(ByVal CtrlName As String, ByVal type As String, ByVal formName As Object) As String
Dim ctrlType As String = "System.Windows.Forms." & type
For Each objcontrol As Control In formName.Controls
If objcontrol.GetType.ToString = ctrlType And objcontrol.Name.Contains(CtrlName) Then
AddHandler objcontrol.KeyPress, AddressOf NumbersOnlyHandler
End If
Next
Return True
End Function 'NumbersOnlyEvent
Private Sub NumbersOnlyHandler(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
If Char.IsDigit(e.KeyChar) Or e.KeyChar = Chr(8) Then
e.Handled = False
Else
e.Handled = True
End If
End Sub
End Class
И у меня есть этот класс формы:
Public Class addbet
Dim CommonFunc As common = New common
Private Sub addbet_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'AddHandler Events
CommonFunc.NumbersOnlyEvent("txtSbcNum", "TextBox", Me)
End Sub
End Class
И у меня есть следующие текстовые поля:
txtSbcNum1
txtSbcNum2
.
.
.
txtSbcNum15
Когда я добавляю обработчик событий, вызывая CommonFunc.NumbersOnlyEvent ("txtSbcNum", "TextBox", Me) в Form_Load, он работает нормально. Но когда я помещаю свои текстовые поля в GroupBox, он не работает, но когда я снова удаляю его в GroupBox, он снова работает. Я что-то пропустил?