作者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)