Vb.net 在VB中,仅清除面板中的文本框

Vb.net 在VB中,仅清除面板中的文本框,vb.net,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

我有一个包含许多文本框的表单,我希望对一个按钮进行编码,该按钮将仅清除这些框的一部分,我插入了一个面板,其中包含我需要执行的操作,并一直使用以下代码:

  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()”的地方,这似乎是我出错的地方?感谢您的帮助。

您可以使用
LINQ
查找并转换相关文本框:

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

因此,您根本不需要
Panel1.Controls.Clear()
,它将从面板中删除所有控件。

您几乎拥有了它。您应该在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

我已经试过了,但它仍然没有做任何事情。很遗憾,我应该如何连接文本框和面板?是的。文本框需要放在面板的顶部。是的,哈哈,我想是的,它们已经在顶部了。我只是想知道是否有什么我不做的事情。这很奇怪。这样做只是为了100%确保文本框正确地位于面板上:MsgBox(TextBox1.Parent.ToString)如果TypeOf(ctrl)是TextBox,那么