-1
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) _
    Handles Button1.Click  
    EmptyTextBoxValues(Me)  
End Sub  

Private Sub EmptyTextBoxValues(ByVal parent As Control)  
    For Each c As Control In parent.Controls  
        If (c.Controls.Count > 0) Then  
            EmptyTextBoxValues(c)  
        Else  
            If TypeOf c Is TextBox Then  
                CType(c, TextBox).Text = ""  
            End If  
        End If  
    Next  
End Sub  

此子用于清除所有文本框值,我只需要知道它是如何工作的??

4

2 回答 2

4

sub 递归调用所有EmptyTextBoxValues子控件(如果它们存在) - 如果不存在,它会检查它们是否是文本框,如果是,则清除它。

首先 - 它遍历属于传入控件的每个子控件:

For Each c As Control In parent.Controls

然后它测试子控件是否有它自己的子控件,如果有,就用子控件调用它自己:

    If (c.Controls.Count > 0) Then  
        EmptyTextBoxValues(c)  

如果子控件上不存在这样的子控件,则测试控件的类型是否为 of TextBox,如果是,则将其清除:

    Else  
        If TypeOf c Is TextBox Then  
            CType(c, TextBox).Text = ""  
        End If  
于 2012-05-22T13:47:53.250 回答
0

它遍历作为窗体的直接子级的所有控件,并检查每个控件是否都是 TextBox 控件。如果是这样,它将清除它。此外,它还会检查每个控件是否是包含更多子控件的容器控件。如果是这样,它会递归调用自己来处理所有这些子控件。

于 2012-05-22T13:51:05.267 回答