在VB中只想清除面板中的文本框

时间:2014-06-02 11:14:00

标签: vb.net

我有一个带有许多文本框的表单,我希望编写一个只清除这些框的一部分的按钮,我已经插入了一个面板来包含我需要实现的那些并且一直在使用以下代码:

  Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    Panel1.Controls.Clear()
    Dim ctrl As Control
    Dim txt As TextBox
    For Each ctrl In Panel1.Controls
        If (ctrl.GetType() Is GetType(TextBox)) Then
            txt = CType(ctrl, TextBox)
            txt.Text = ""
        End If
    Next
End Sub

我可以对其进行编码,以便清除所有文本框,但这是我添加了' Panel1.Controls.Clear()'似乎是我出错的地方?任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:0)

您可以使用LINQ的{​​{3}}来查找和投射相关的文本框:

For Each txt In Panel1.Controls.OfType(Of TextBox)()
    txt.Text = ""
Next

所以你根本不需要Panel1.Controls.Clear(),它会从面板中删除所有控件。

答案 1 :(得分:0)

你几乎拥有它。您应该在for语句中使用ctrl变量并清除它的文本。

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    For Each ctrl As Control In Panel1.Controls
        If ctrl.GetType() Is GetType(TextBox) Then
            ctrl.Text = "" 'You just need to add this.
        End If
    Next
End Sub