vb.net - 如何制作一个可以检查/编辑多个 VB.net 文本框的 for 循环
问题描述
例如,我在 VB 设计器中有 5 个不同名称的文本框 TextBox1, TextBox2 .... TextBox5
是否有任何简单的方法可以通过递归地使用 1 行来加载/检查 TextBox1、2 ...5?
我正在尝试使用列表数据结构列表加载文本框。所以每次我都必须放一个 TextBox(number).Text 来加载它。
Private Sub addbutton_click() handles addbutton.click
TextBox1.Text=MyList1(Some_constant)(other_constant).Name(0)
TextBox2.Text=MyList1(Some_constant)(other_constant).Name(1)
End Sub
我想使用一个看起来像这样的 for 循环,这样我就可以遍历 Name(0)、(1) 和 TextBox(number).Text。我无法遍历 TextBox(number),因为 textBox 是一个 VB 工具项。
Private Sub addbutton_click() handles addbutton.click
For i As Integer = 0 to 5
TextBox(i).Text = MyList1(Some_constant)(other_constant).Name(i)
Next i
End Sub
解决方案
将索引值添加到Tag
TextBox 的属性中。当您需要进行递归处理时,循环通过控件:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Try
'get your list of text boxes
For Each tb As TextBox In Me.Controls.OfType(Of TextBox)
Dim indexValue As Integer
'get your index value out the tag
Integer.TryParse(tb.Tag, indexValue)
'use it
tb.Text = MyList1(Some_constant)(other_constant).Name(indexValue)
Next
Catch ex As Exception
MessageBox.Show(String.Concat("An exception occurred: ", ex.Message))
End Try
End Sub
推荐阅读
- angularfire - 错误:在 Angular Firebase Universal 中找不到模块 'require("./server/main")'
- javascript - 参数 urls onBeforeRequest.addListener 有很多 url 模式导致加载页面很慢
- javascript - 如何修复javascript引用错误:提示未定义
- http - 当我发送一个包含两个值为 0 的字节的字节数组时,它停止工作
- java - 如何仅将 Java 12 中的 JRE 安装到 docker 映像中?
- xml - XSLT 执行多文件到一的转换?
- python - 防止 SQLAlchemy 自动设置 IDENTITY_INSERT
- linux-kernel - 如何知道重置 pci 设备何时完成?
- spring - spring boot + h2 + jpa项目的问题
- java - Android 应用程序只安装一次