vb6 動態list
各位大大好!
我利用Set list3 = Controls.Add("VB.ListBox", "List3") '動態載入List
這個載入了一個動態的list,然後執行一個計算式將文字都放在這個list3中,可是我在執行一次的話,就會出現錯誤訊息:已有一名為list3的控制項存在。
問題1:我應該在按command執行一程式前,先把我開啟的list關掉呢?
問題2:假設如果我要把原本的動態list3,給顯示出來,應該怎麼做呢?(包括設定list的長、寬、及位置~~~等)
不好意思!
我知道已有list3了,所才要問如何移除!
我有測試了!但不行,出現了錯誤訊息
controls.remove 使用必需用controls.add方法所加入的控制項才用使用(出現錯誤訊息)
2、屬性應該怎樣設定呢?可以詳細點嗎?因為我是初學者,所以要麻煩你!謝謝!
謝謝豬大大!我測試完成可行了!
也謝謝鴨子,及W.J.S大師的意見!
另外提姆我也想試試你的方法,是不是要先設一個靜態的LIST,可是我的前提是一開始我不要有LIST,是在中途執行程式才出現,不知道你的方法可行嗎?
如果可是的話請你在指導一下,我也學習一下不一樣的方式!看那個好用!
4 個解答
- 汪汪 汪汪Lv 71 0 年前最佳解答
在執行一次的話,就會出現錯誤訊息:已有一名為list3的控制項存在。
因為已經有 List3 存在了啊~
問題1:我應該在按command執行一程式前,先把我開啟的list關掉呢?
Controls.Remove 用來移除元件~
問題2:假設如果我要把原本的動態list3,給顯示出來,應該怎麼做呢?(包括設定list的長、寬、及位置~~~等)
Controls.Add後~ 要設定屬性 Heigh , Width , Top , Left , Visible
2008-08-25 01:54:40 補充:
靜態方式的不能Remove啊~
動態產生就要避免跟靜態物件的名稱重覆~
指定屬性不會??? 你應該會吧~
List.屬性 = xxxx
2008-08-25 22:07:18 補充:
用 load 前提是要先有一個陣列控制項~
不想出現用 Visible 屬性就可以~
- W.J.S.Lv 71 0 年前
應該是你在設計階段就有放進一個List3的物件在表單裡面,所以用add & remove都沒辦法,詳細檢查一下吧.
For Each i In Controls
Debug.Print TypeName(i), i.Name
Next
- 提姆Lv 51 0 年前
我個人習慣用控制項陣列'+Load來做這件事,
首先,先把List3.Index設成0, 使List3變成控制項陣列,
然後程中寫
Load List3(1)
就可以了。
用Load產生的動態控制項可用Unload移除:
Dim olst as ListBox
For Each lLst in List3
if olst.Index <> Then Unload olst
Next
2008-08-25 06:38:20 補充:
使用Load產生的動態控制項會複制項會直接複制原陣列中的靜態控制項,
即List(0)的各項屬性,連Top/Left'height/Width都一模一樣,
也就是說,會疊在一起。
把能在Form上顯示,至少要把動態控制項移一下
List3(1).Visible = True
List3(1).Top = List3(0).Top + List3(0).Heigth
2008-08-25 08:43:28 補充:
不好意思,一開始忘了講,我的是VB6的語法。
2008-08-29 11:12:43 補充:
我的需要先有一個靜態的List3(0)才行。