簡體   English   中英

調用成員事件vb.net 2005時GroupBox出現問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM