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

问题描述 投票:4回答:6

我使用以下代码来清除

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()

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

vb.net textbox
6个回答
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

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

3
投票

我试过这里的一个例子,但这似乎对我有用:

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

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()不是文本框属性的成员。


0
投票

这是我个人在我的项目中使用它的代码^ _ ^

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


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

我希望这可以帮助别人,

R队

© www.soinside.com 2019 - 2024. All rights reserved.