我使用以下代码来清除
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()
有没有可能一次清除所有文本框控件或用几行代码清除?
你可以将它们放在一个数组中然后遍历数组:
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
您可以迭代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
我试过这里的一个例子,但这似乎对我有用:
Dim a As Control
For Each a In Me.Controls
If TypeOf a Is TextBox Then
a.Text = Nothing
End If
Next
试试这个
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()不是文本框属性的成员。
这是我个人在我的项目中使用它的代码^ _ ^
ClearAll TextBoxes :
For Each TxtBox In Me.Controls.OfType(Of TextBox)
TxtBox.Clear()
Next TxtBox
我不得不将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队