通过对象名称动态访问对象属性

鬣狗猫

我有几个文本框,我想循环浏览并设置每当用户单击按钮时的文本值,每次单击一个框。

它们的名称都相同,并在其末尾添加了一个数字

Light_Number_01
Light_Number_02
Light_Number_03
Light_Manufacturer_01
Light_Manufacturer_02
Light_Manufacturer_03

我想为所有文本框设置相同的数字结尾并单击相同的按钮,我当前的思维过程是这样做

Light_Pointer = 01
Light_Number_Pointer = "Light_Number_" & Light_Pointer
Light_Manufacturer_Pointer = "Light_Manufacturer_" & Light_Pointer
Light_Number_Pointer.Text = 'Logic from other parts of the program
Light_Manufacturer_Pointer.Text = 'Logic from other parts of the program

我希望能够执行类似的操作,即按其名称访问文本框,

我希望尽可能简化这一过程,因为将来可能由比我本人还要经验更少的程序员来维护,但是如果这行不通,我愿意考虑使用更复杂的解决方案

ᴇʜ

您可以使用Controls()按名称访问控件

Dim i As Long
i = 2
MyForm.Controls("Light_Number_" & Format$(i, "00")).Text = ""         'same like MyForm.Light_Number_02.Text
MyForm.Controls("Light_Manufacturer_" & Format$(i, "00")).Text = ""   'same like MyForm.Light_Manufacturer_02.Text

请注意,请Format$(i, "00")确保i始终将其转换为以零开头(如果i小于10)的2位数字
这样可以确保您可以使用例如从零开始计数For i = 1 To 10并自动添加前导零的循环

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章