在VB.Net中建立使用控制元件陣列 (轉)
在中建立使用陣列:namespace prefix = o ns = "urn:schemas--com::office" />
一、 關於“控制元件陣列”
“控制元件陣列”是中一項簡單而實用的技術,透過對控制元件的簡單複製、複製,開發者可以指定一組控制元件,這些控制元件具有相同的型別和名稱,共享事件集。使用控制元件陣列可以:1、允許多個控制元件共享同一個事件控制程式碼;2、提供了執行期間增加一個控制元件的機制;3、提供了一種方便的組合控制元件的方法。
在VB.NET中,控制元件陣列的建立不再透過VB6中設計時對控制元件的簡單複製、複製而實現。.NET 的事件模型允許任何事件處理處理來自多個控制元件的事件,這使我們能夠建立屬於不同型別但共享相同事件的控制元件組。
二、 在VB.NET中程式設計建立控制元件陣列
下面我們建立一個Button型別控制元件陣列:
1、建立“應用程式”型別的工程,新增名為ButtonArray的類,並使該類繼承 System.Collection.CollectionBase 類。System.Collections.CollectionBase類是.NET類庫中為集合操作提供抽象的基類,透過對它的繼承可以為我們的ButtonArray類具備集合增加、刪除、的功能。
2、為ButtonArray類新增ParentForm屬性,即控制元件組所在窗體,建立初始化(建構函式);
3、為控制元件陣列類增加AddItem方法,該方法在控制元件陣列類中新增成員;
4、為控制元件陣列類增加RemoveItem方法,該方法在控制元件陣列中刪除一個成員。
示例程式碼:
Public Class ButtonArray
Inherits System.Collections.CollectionBase
Private ReadOnly ParentFoAs System.Windows.Forms.Form
Public Sub New(ByVal pForm As System.Windows.Forms.Form)
ParentForm = pForm
End Sub
Default Public ReadOnly Property Item(ByVal index As Integer) As System.Windows.Forms.Button
Get
Return Me.List.Item(index) ' ButtonArray的List 屬性從CollectionBase 繼承
End Get
End Property
Public Sub AddItem()
Dim btnItem As New System.Windows.Forms.Button()
Me.List.Add(btnItem)
ParentForm.Controls.Add(btnItem) '向窗體中增加控制元件
btnItem.Tag = Me.Count 'Count屬性從CollectionBase 繼承
btnItem.Top = Me.Count * 30
btnItem.Left = 200
btnItem.Text = "Button" & Me.Count.ToString
AddHandler btnItem.Click, AddressOf btnItem_Click '繫結事件處理程式
End Sub
Public Sub RemoveItem()
If Me.Count > 0 Then
ParentForm.Controls.Remove(Me(Me.Count - 1))
Me.List.RemoveAt(Me.Count - 1)
End If
End Sub
Public Sub btnItem_Click(ByVal sender As , ByVal e As System.EventArgs)
'在這裡編寫控制元件陣列對點選事件的響應
'例如:
MsgBox("點選:" & sender.GetType().ToString & CType(CType(sender, Button).Tag, String))
End Sub
End Class
三、 使用建立的控制元件陣列
在Form1中放置兩個按鈕Button1、Button2,分別測試控制元件陣列的增添、刪除。
雙擊Form新增程式碼:
Public Class Form1
Inherits System.Windows.Forms.Form
……Windows窗體設計器生成的程式碼……
Dim Buttons As New ButtonArray(Me)
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Buttons.AddItem()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Buttons.RemoveItem()
End Sub
End Class
可見,與VB6中實現控制元件陣列的方法相比,VB.NET似乎複雜了一些,但同時也使開發人員在程式設計時有了更大的靈活度。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-993893/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 在VB.NET中執行基本的陣列操作陣列
- 在BCB中使用向量實現控制元件陣列 (轉)控制元件陣列
- 在COM中使用陣列引數-陣列指標 (轉)陣列指標
- 在 JavaScript 中建立陣列的正確姿勢JavaScript陣列
- toString 方法在陣列中的使用陣列
- .NET中新增控制元件陣列 (轉)控制元件陣列
- DELPHI也可以實現控制元件陣列,用定義陣列變數實現控制元件陣列 (轉)控制元件陣列變數
- 在VB.NET中尋找App (轉)APP
- 在COM中使用陣列引數-ICollection (轉)陣列
- VB.net chart 控制元件使用控制元件
- 在BCB中陣列的妙用和紀錄和改變控制元件的狀態 (轉)陣列控制元件
- VB.NET重新申明陣列簡介陣列
- 簡單描述VB.NET申明陣列陣列
- C#實現控制元件陣列 (轉)C#控制元件陣列
- 在C++中實現變長陣列 (轉)C++陣列
- 在COM中使用陣列引數-SafeArray (轉)陣列
- 關於在類陣列中使用陣列方法陣列
- Java陣列宣告建立和使用以及多維陣列、Arrays類、稀疏陣列Java陣列
- 【譯】在 JavaScript 中建立和填充任意長度的陣列JavaScript陣列
- 使用陣列建立分頁資料陣列
- [轉]Oracle陣列的使用Oracle陣列
- 淺談二維陣列在傳參中的使用陣列
- 陣列-在Shell指令碼中的基本使用介紹陣列指令碼
- PowerShell中的陣列使用陣列
- C++ 使用 new 建立二維陣列C++陣列
- Linux Shell 陣列建立及使用技巧Linux陣列
- 在BCB中輕鬆使用ActiveX控制元件 (轉)控制元件
- Java中List陣列互轉Java陣列
- 陣列004 動態建立一維陣列陣列
- typedef使用大全1(陣列) (轉)陣列
- iOS 字典轉陣列,陣列轉字典iOS陣列
- C# / VB.NET 在PPT中建立、編輯PPT SmartArt圖形C#
- JavaScript建立陣列求和JavaScript陣列
- 建立動態陣列陣列
- 如何使用storcli在系統中管理RAID磁碟陣列AI陣列
- 建立和訪問陣列及使用方法陣列
- Java 中的陣列 如何使用Java陣列
- Oracle中陣列使用方法Oracle陣列