textbox - 在 Visual Basic 6 中调用带有数字变化的 Texbox 的名称
问题描述
我正在使用 Visual Basic 6 创建一个包含许多名为 txtNo1、txtNo2、txtNo3、...的文本框的表格。我想使用“For...Next...”循环将内容分配给这些文本框。我怎样才能以最简单的方式调用所有这些文本框?
For i = 1 to 100
txtNo (......) .txt = "ABC"
Next i
解决方案
您应该使用(文本框)控件数组,而不是使用唯一的文本框,每个文本框都有一个唯一的名称:
- 将第一个文本框放在表单上,将其命名为“txtNo”
- 复制并粘贴到表格中
- VB 会问你“已经有一个名为'txtNo'的控件。你想创建一个控件数组吗?”。回答“是”
- 根据需要多次粘贴为文本框
然后你的代码看起来像
' Control arrays typically start at index 0
For i = 0 to 100
txtNo(i) .txt = "ABC"
Next i
Jim Mack 的解决方案也适用,代码如下:
' Assuming your form is named 'Form1'
For each ctrl in Form1.Controls
If TypeOf ctrl Is Textbox
For i = 1 To 100
If ctrl.Name = "txtNo" & CStr(i) Then
ctrl.Text = "ABC"
End If
End If
End If
它有点复杂,但因此更灵活,因为它适用于多种控制类型(在一个循环中)。
推荐阅读
- powerquery - 寻找一个公式来计算团队所有成员(包括每个主管)的成本
- java - Spring数据按名称存在,其他字段的值不同
- fortran - Fortran 中的浓度间距出乎意料
- mysql - 如何增强此查询以仅使用一个视图?
- android - 此处缺少导航版 SDK for android
- java - Selenium 同时测试两个页面
- go - Gorm 在结构中填充结构,结果无法完全正常工作
- angular - 如何在Angular中隐藏一页的面包屑?
- c# - 有没有办法删除关系表的行而不加载所有行?
- azure-devops - 如何在 Azure DevOps 中使用通用包保留文件属性?