2017-05-31 88 views
1

我有一個自定義組件,裏面有幾個複選框和一個文本框;也有一個屬性/變量,我稱之爲「秒」來存儲時間。如何通過名稱訪問自定義組件屬性?

這個自定義的控件會在運行時添加多次到另一個TabPages內部(嵌套)的TabPage。

這些控件中的每一個都具有在運行時創建時分配的順序名稱。

TimerCtrl1

TimerCtrl2

TimerCtrl3

等等

現在我想通過名字來設置這些複選框,文本框裏面的文字和變量秒加載配置文件從具有每個控件的名稱和屬性的文件。

我可以改變另一個控制一樣,在設計時使用下面的代碼

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

「自定義控件」是指用戶控件嗎? – Plutonix

+0

對不起,是的,我有。 –

+0

其中的一點是將一些功能封裝爲一個單元。既然你寫了它,添加一個方法或屬性來告訴它做什麼 – Plutonix

回答

3

​​將是一組控件(Control())。如果您想訪問該屬性,則需要將您訪問的那個人施放到您的特定控件上。

DirectCast(TimerIndex(0), <user control type name here>).seconds = Values(1) 

例如:

DirectCast(TimerIndex(0), TimerUserControl).seconds = Values(1) 

- 在這裏,TimerUserControl是我的自定義用戶控件的通用名稱。

MSDN documentation上閱讀更多關於DirectCast

+0

@E_Blue:很高興能幫到你!祝你好運! –