繁体   English   中英

按对象名称动态访问对象属性

[英]Dynamically access object properties by object name

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

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

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始终转换为带有前导零的 2 位数字(如果i小于 10)。
这确保您可以使用例如从For i = 1 To 10计数并自动添加前导零的循环。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM