[英]Problem with GroupBox when calling member event vb.net 2005
我有这个课:
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
当我通过在Form_Load上调用CommonFunc.NumbersOnlyEvent(“ txtSbcNum”,“ TextBox”,Me)添加事件处理程序时,它可以正常工作。 但是,当我将文本框放在GroupBox上时,它不起作用,但是当我再次将其删除到GroupBox时,它又可以工作了。 我错过了什么吗?
问题在于表单控件不包含子控件。 因此,组框是在窗体上找到的,但在文本框上却找不到,因为它是组框的子级。
更改此行:
CommonFunc.NumbersOnlyEvent("txtSbcNum", "TextBox", Me)
对此:
CommonFunc.NumbersOnlyEvent("txtSbcNum", "TextBox", Me.GroupBox1)
以便在组框中找到该文本框。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.