〥羽〥 發表於 2008-12-25 02:42:44

[轉貼]VB.NET 控制項陣列

下面是教大家如何在VB.NET裡使用控制項陣列
我以Label類為例
第一步:在自己所需要的作用域定義Label類型的陣列,這裡定義還沒有用.
private Labs(9) as Label
第二步:初始化.一般使用迴圈
dim i as Integer
For i = Labs.GetLowerBound(0) To Labs.GetUpperBound(0)
labs(i).text="這裡是標籤" & i
labs(i).autosize=false
labs(i).size=labs(i).PreferredSize
...
AddHandler labs(i).Click, AddressOf labs_Click '這是能使用事件的關鍵
controls.add(labs(i)) '添加到當前容器
next i
還可在迴圈裡設定你所需的設置,如標籤的字體了,大小,顏色等等.

第三步:事件處理.就是什麼按一下,按兩下等等,這是以按一下為例,和上文紅色部分有關
還記得上面寫的AddHandler labs(i).Click, AddressOf labs_Click吧.
裡面的labs_Click其實就是自己編寫的處理Click事件的過程.
    Private Sub labs_Click(ByVal sender As Object, ByVal e As EventArgs)
dim LabTemp as new label
      Labtemp = CType(sender, Label) '這裡用CType就是將觸發事件的物件還原為Label物件
      'Labtemp就是觸發事件的物件
   end sub
下面是一個完整的例子,VB2005 下完成

Public Class Form1
    Dim labs(9) As Label
    Private Sub T_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      Dim i As Integer
      For i = labs.GetLowerBound(0) To labs.GetUpperBound(0)
            labs(i) = New Label
            labs(i).Text = "我是" & i & "號標籤"
            labs(i).AutoSize = False
            labs(i).Size = labs(i).PreferredSize
            labs(i).Top = i * (labs(i).Height + 10)
            AddHandler labs(i).Click, AddressOf labs_Click
            Me.Controls.Add(labs(i))
      Next
    End Sub
    Private Sub labs_Click(ByVal sender As Object, ByVal e As EventArgs)
      Dim LabTemp As New Label
      LabTemp = CType(sender, Label)
      Me.Text = "剛剛按一下" & LabTemp.Text
      LabTemp = Nothing
    End Sub
End Class
頁: [1]
查看完整版本: [轉貼]VB.NET 控制項陣列