作者cf1064 (蚵仔)
看板Visual_Basic
標題[.NET] vb動態產生物件修改
時間Tue Dec 31 16:32:04 2013
想請問各位大大,目前小弟有一隻程式是動態產生物件
動態產生物件的方式放在一個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)
1F:→ MOONRAKER:你不是有個button1陣列 取出他最後一個元素不就是 01/01 22:26
2F:→ 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)
3F:→ MOONRAKER:廢話,那樣打當然是會有錯誤,但是不是因為"button是動 01/02 14:25
4F:→ MOONRAKER:態產生的",這裡面至少有兩步,但是你連錯誤訊息都不看 01/02 14:26
5F:→ MOONRAKER:就自作聰明認為因為動態產生所以會錯誤,就隨便吧 01/02 14:26
好吧,那就隨便吧,我再去藍色小鋪找找好了
※ 編輯: cf1064 來自: 114.39.165.11 (01/02 20:47)
6F:→ MOONRAKER:你起碼要(1)讓button1在createobj之外也可以存取到 01/03 03:05
7F:→ MOONRAKER:(2)知道怎樣拿到button1最後一個元素 01/03 03:05
8F:→ MOONRAKER:或把i也弄成可以在createobj外存取 01/03 03:05
有想過把button宣告成全域變數,
但是其實button陣列裡面的值是由sql搜尋出來
的總筆數決定並不是固定的,在最上面也只能放宣告而己
※ 編輯: cf1064 來自: 118.163.245.121 (01/03 10:44)
9F:→ MOONRAKER:VB一向有方法取得某一陣列的目前長度,VB.NET也有 01/03 15:18
10F:→ MOONRAKER:你可以查一下。應該跟Javascript很類似但有一點差別。 01/03 15:18
最後是在全域變數中宣告button陣列,不給陣列值,然後在create的function裡
redim該button並給予button陣列值,如此就可以在其他sub裡去設定陣列中的屬性了
※ 編輯: cf1064 來自: 118.163.245.121 (01/06 10:21)