看板 Visual_Basic 關於我們 聯絡資訊
想請問版上各位前輩 我目前在UserForm_Activate裡建立了動態的物件,如下 Private Sub UserForm_Activate() Dim myComboBox(20) As ComboBox Dim myTextBox(20) As TextBox myComboBox(1) = Controls.Add("Forms.ComboBox.1", "myCbBox" & 1) myTextBox(1) = Controls.Add("Forms.ComboBox.1", "myTB" & 1) myComboBox(1).AddItem XXX(n) 'XXX(n)為欲加入下拉式選單的東西,是陣列 '選擇下拉式選單的東西,將其資訊對應到動態TextBox Select Case myComboBox(1).ListIndex Case 0 myTextBox(1).Text = YYY(0) Case 1 myTextBox(1).Text = YYY(1) End Select End Sub 因為必須要用動態物件... 大致上的操作情境為進入此UserForm後 會把一些東西丟到動態物件myComboBox(1)下拉式選單去,然後選擇其中的東西 XXX(n) 會顯示YYY(0) or YYY(1)在動態物件 myTextBox(1) 但目前因為是在Activate下,所以選擇下拉式選單之後,並不會有接下來的動作 請問要如何才能解決這個問題呢? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.195.209.225 ※ 編輯: hallfive 來自: 123.195.209.225 (03/10 20:43)
fumizuki:儲存動態生成的控制項的變數要放在模組宣告區才對 03/10 22:24
fumizuki:(就是程式碼的最上面,第一個sub或function之前) 03/10 22:24
fumizuki:要選了東西後有動作必須要寫事件的程式碼啊 不然怎麼知道 03/10 22:25
fumizuki:要做什麼? 03/10 22:25
fumizuki:宣告變數時也必須Dim WithEvents x(20) AS Combobox 才行 03/10 22:26
fumizuki:然後就可以在程式碼視窗上方的兩個下拉選擇物件及事件了 03/10 22:27
※ 編輯: hallfive 來自: 123.195.209.225 (03/10 23:01)