这是如何运作的?

时间:2012-05-22 13:44:31

标签: vb.net

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  

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

2 个答案:

答案 0 :(得分:4)

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

开始 - 它遍历属于传入控件的每个子控件:

For Each c As Control In parent.Controls

然后测试子控件是否有自己的子控件,如果是,则使用子控件调用自身:

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

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

    Else  
        If TypeOf c Is TextBox Then  
            CType(c, TextBox).Text = ""  
        End If  

答案 1 :(得分:0)

它循环遍历表单的直接子节点的所有控件,并检查每个控件是否是TextBox控件。如果是这样,它会清除它。此外,它还会检查每个控件是否是包含更多子控件的容器控件。如果是这样,它会递归调用自己来处理所有这些子控件。