2017-04-16 133 views
3

我有一個程序可以獲取多個名稱,並將它們保存在一個文件中。我想爲保存在文件中的每個人創建一個新對象(按鈕,標籤等)。我用這個代碼,但我得到的錯誤:如何使用New關鍵字在VB6中創建新對象,如新按鈕,標籤等

Dim i as new object 
set i= new button 

,我得到了錯誤: ActiveX組件不能創建對象

+0

你只問關於創建屏幕控制? 「對象」一詞比這個詞廣泛得多。 – DaveInCaz

+0

我想要一個可點擊的對象,我可以爲每個人顯示一個頁面 – Elias

回答

2

在你的窗體中添加一個標籤和一個命令按鈕。我假設你已經這樣做了。

選擇標籤,然後在屬性窗口中將lblPerson設置爲Name屬性,將0設置爲Index屬性。

選擇該按鈕,然後在屬性窗口中將cmdPerson設置爲Name屬性,將0設置爲Index屬性。

現在你有,你可以動態地在運行時設置兩個Control數組:

Public Sub AddPersonListControls(idx As Long) 
    Load cmdPerson(idx) 
    cmdPerson(idx).Caption = "Details" 
    cmdPerson(idx).Visible = True 
    cmdPerson(idx).Top = cmdPerson(idx - 1).Top + cmdPerson(idx - 1).Height + 10 
    cmdPerson(idx).Left = cmdPerson(0).Left 

    Load lblPerson(idx) 
    lblPerson(idx).Caption = "Person Name " & idx 
    lblPerson(idx).Visible = True 
    lblPerson(idx).Top = lblPerson(idx - 1).Top + lblPerson(idx - 1).Height + 10 
    lblPerson(idx).Left = lblPerson(0).Left 
End Sub 

無論你加載你的人的數據,創建相應的控件:

Dim numPersons As Long 
numPersons = 3 ' just an example 
Dim i As Long 
For i = 1 To numPersons - 1 
    AddPersonListControls i 
Next 

表單應長相像這樣(注意:Form1.ScaleMode設置爲3-Pixels):

Dynamically loaded controls

說明:

雖然我的回答並不直接與New關鍵字解決您的問題,它說明你正確的方法如何在動態的情況下增加新的控制你不知道多少,他們應該是,因此通過避免使用Named Controls並通過使用Array Controls來代替。

+0

感謝您的幫助,但我應該在哪裏添加AddPersonListControls? – Elias

+0

對此的回答是廣泛的評論,請發佈您的文本文件樣本,其中包含個人數據,並且有人會告訴您如何閱讀該文件。 – deblocker

相關問題