立即清除vb.net中的许多文本框控件

时间:2013-07-28 07:39:20

标签: vb.net textbox

我使用以下代码清除

txtint1.Clear()
txtext1.Clear()
txttot1.Clear()
txtint2.Clear()
txtext2.Clear()
txttot2.Clear()
txtint3.Clear()
txtext3.Clear()
txttot3.Clear()
txtint4.Clear()
txtext4.Clear()
txttot4.Clear()
txtint5.Clear()
txtext5.Clear()
txttot5.Clear()
txtint6.Clear()
txtext6.Clear()
txttot7.Clear()
txtint8.Clear()
txtext8.Clear()
txttot8.Clear()

是否有可能一次清除所有文本框控件或使用几行代码清除?

9 个答案:

答案 0 :(得分:7)

您可以遍历root.Controls中包含的表单上的所有控件,并查看它是否为文本框TypeOf ctrl Is TextBox类型,然后您可以清除该控件中的文本CType(ctrl, TextBox).Text = String.Empty

嘛!!您需要使用递归来遍历所有控件

添加代码:

Public Sub ClearTextBox(parent As Control)

    For Each child As Control In parent.Controls
        ClearTextBox(child)
    Next

    If TryCast(parent, TextBox) IsNot Nothing Then
        TryCast(parent, TextBox).Text = [String].Empty
    End If

End Sub

答案 1 :(得分:4)

你可以把它们放在一个数组中然后循环遍历数组:

For Each txt In {txtint1, txtext1, txttot1, txtint2, txtext2, txttot2, txtint3, txtext3, txttot3, txtint4, txtext4, txttot4, txtint5, txtext5, txttot5, txtint6, txtext6, txttot7, txtint8, txtext8, txttot8}
    txt.Clear()
Next

答案 2 :(得分:3)

我尝试了其中一个例子,但这似乎对我有用:

Dim a As Control
    For Each a In Me.Controls
        If TypeOf a Is TextBox Then
            a.Text = Nothing
        End If
    Next

答案 3 :(得分:1)

尝试一下

For Each txt As Control In Me.Controls.OfType(Of TextBox)()
   txt.Text = ""
Next

答案 4 :(得分:0)

尝试这个

    Dim a As Control
    For Each a In Me.Controls
        If TypeOf a Is TextBox Then
            a.Text = ""
        End If
    Next

Dim a As Control
    For Each a In Me.Controls
        If TypeOf a Is TextBox Then
            a.clear()
        End If
    Next

如果.Clear()是textbox属性的成员,则使用它。我猜.clear()不是文本框属性的成员。

答案 5 :(得分:0)

这是我在我的项目中亲自使用的代码^ _ ^

ClearAll TextBoxes : For Each TxtBox In Me.Controls.OfType(Of TextBox) TxtBox.Clear() Next TxtBox

答案 6 :(得分:0)

我必须将Control转换为TextBox才能完成此工作。关于控制对象不可访问的信息。可能有更直接的方法,但我找不到。

我从https://stackoverflow.com/a/16264904/11242863那里得到了主意

Private Sub clearAllTextBoxes()
    Dim formControl As Control
    Dim txtBox As TextBox
    For Each formControl In Me.Controls
        If TypeOf formControl Is TextBox Then
            txtBox = TryCast(formControl, TextBox)
            txtBox.Clear()
        End If
    Next
End Sub

我希望这对某人有帮助

Tim R

答案 7 :(得分:0)

这会将窗体上的所有控件重置为默认值

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
    Controls.Clear()
    InitializeComponent()
    Form1_Load(Me, Nothing)
End Sub

答案 8 :(得分:0)

这段代码已经过测试,是我用过的最好的代码:

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
    Controls.Clear()
    InitializeComponent()
    Form1_Load(Me, Nothing)
End Sub