我有一个带有许多文本框的表单,我希望编写一个只清除这些框的一部分的按钮,我已经插入了一个面板来包含我需要实现的那些并且一直在使用以下代码:
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()'似乎是我出错的地方?任何帮助表示赞赏。
答案 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