我有一个自定义组件,里面有几个复选框和一个文本框;还有一个属性/变量,我称之为“秒”来存储时间。
此自定义控件多次添加到TabPage中,该TabPage在运行时位于另外两个TabPages内(嵌套)。
这些控件中的每一个都具有在运行时创建它们时分配的顺序名称。
TimerCtrl1
TimerCtrl2
TimerCtrl3
等...
现在我想设置这些复选框,文本框内的文本和名称中的变量seconds,以从具有每个控件的名称和属性的文件中加载配置文件。
我可以使用以下代码更改另一个控件,例如在设计时创建的文本框
Dim TxtIndex = ProgTab.Controls.Find(Values(0), True)
If TxtIndex.Length > 0 Then
TxtIndex(0).Text = Values(1) 'Value to TextBox
End If
但是我无法以同样的方式访问我自己的自定义控件的属性。
我尝试做:
Dim TimerIndex = ProgTab.Controls.Find(Values(0), True)
If TimerIndex.Length > 0 Then
TimerIndex(0).seconds = Values(1) 'Syntax ERROR
End If
有关如何解决此问题的想法吗?
答案 0 :(得分:3)
TimerIndex
将是一组控件(Control()
)。如果要访问该属性,则需要将您可以访问的那个转换为特定控件。
DirectCast(TimerIndex(0), <user control type name here>).seconds = Values(1)
例如:
DirectCast(TimerIndex(0), TimerUserControl).seconds = Values(1)
- 此处,TimerUserControl
是我的自定义用户控件的通用名称。
详细了解MSDN documentation上的DirectCast
。