看板 Visual_Basic 關於我們 聯絡資訊
想請問各位大大,目前小弟有一隻程式是動態產生物件 動態產生物件的方式放在一個sub裡, 然後放一個timer去異動該物件的屬性,但是想不出來 該如何在timer裡去修改sub所產生的物件?(在timer裡不想要異動到全部的,只要異動指定的) 詳細程式碼如下: Public Sub createobj() Dim count as Integer = 10 //設定動態產生的數量 Dim button1(count) As Button //動態產生button For i = 0 To count - 1 button1(i) = New Button //設定button的屬性 With button1(i) .Name = "button1" & i .Image = WindowsApplication1.My.Resources.Resources.machine_s .Width = 144 .Height = 60 .Location = New Point(10, 80) .Enabled = False End With //將動態產生的button放在GroupBox裡 GroupBox(i).Controls.Add(button(i)) Next End Sub //timer Private Sub re_connect_time_Tick(sender As System.Object, e As System.EventArgs) Handles re_connect_time.Tick //想在到數時間到時,去將剛剛createobj()所產生的button屬性中的Enable改為True, 這段不知道怎麼寫? End Sub -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.163.245.121 ※ 編輯: cf1064 來自: 118.163.245.121 (12/31 16:37)
MOONRAKER:你不是有個button1陣列 取出他最後一個元素不就是 01/01 22:26
MOONRAKER:最新的button了 01/01 22:26
可是因為button是動態產生的,所以如果我在re_connect_time_Tick裡 打button1(i).enable=true,會出現錯誤0.0 ※ 編輯: cf1064 來自: 118.163.245.121 (01/02 11:11)
MOONRAKER:廢話,那樣打當然是會有錯誤,但是不是因為"button是動 01/02 14:25
MOONRAKER:態產生的",這裡面至少有兩步,但是你連錯誤訊息都不看 01/02 14:26
MOONRAKER:就自作聰明認為因為動態產生所以會錯誤,就隨便吧 01/02 14:26
好吧,那就隨便吧,我再去藍色小鋪找找好了 ※ 編輯: cf1064 來自: 114.39.165.11 (01/02 20:47)
MOONRAKER:你起碼要(1)讓button1在createobj之外也可以存取到 01/03 03:05
MOONRAKER:(2)知道怎樣拿到button1最後一個元素 01/03 03:05
MOONRAKER:或把i也弄成可以在createobj外存取 01/03 03:05
有想過把button宣告成全域變數, 但是其實button陣列裡面的值是由sql搜尋出來 的總筆數決定並不是固定的,在最上面也只能放宣告而己 ※ 編輯: cf1064 來自: 118.163.245.121 (01/03 10:44)
MOONRAKER:VB一向有方法取得某一陣列的目前長度,VB.NET也有 01/03 15:18
MOONRAKER:你可以查一下。應該跟Javascript很類似但有一點差別。 01/03 15:18
最後是在全域變數中宣告button陣列,不給陣列值,然後在create的function裡 redim該button並給予button陣列值,如此就可以在其他sub裡去設定陣列中的屬性了 ※ 編輯: cf1064 來自: 118.163.245.121 (01/06 10:21)