我有一个名为txtCod1
的TextBox,我想在单击按钮时获取其文本,但我想使用变量来引用它们的属性。
Private Sub btnAceptar_Click(sender As Object, e As EventArgs) Handles btnAceptar.Click
Dim txtDato As TextBox
txtDato = Me.Controls.Item("txtCod1")
MsgBox(txtDato.Text, MsgBoxStyle.Information)
End Sub
当我执行此代码时,它会返回错误。
答案 0 :(得分:1)
您需要过滤掉所需的控件。
最快的解决方案是使用Linq。
因此导入System.Link
并执行:
Dim textBoxes = Controls.OfType(Of TextBox).Where(Function(c) c.Name.StartsWith("txtCod"))
For Each tb In textBoxes
MsgBox(tb.Text)
Next
OfType(Of...)方法仅返回可以强制转换为您指定类型的元素。
如果表单上没有.Where(...)
个文本框,则需要调整名称约束或删除txtCod...
调用。
如果您需要找到不在开头的名称的一部分,您可以使用c.Name.Contains("bla")
。
答案 1 :(得分:1)
抱歉,我找到了解决方案...... 我试过这个并且工作:
If Me.Controls.Find("txtCod1", True).Count = 1 Then
Dim b As TextBox = Me.Controls.Find("txtCod1", True)(0)
MsgBox(b.Text)
End If