章魚哥—VB.NET 如何實現程式碼自動生成控制元件 新增繫結事件
阿新 • • 發佈:2019-01-29
這個問題其實非常簡單,我看到網上也有很多的例子,大家只要一搜就會明白。
但是我在這裡試圖比較詳細的介紹自動生成控制元件的步驟
但是我在這裡試圖比較詳細的介紹自動生成控制元件的步驟
'******************************************************************************** '作者:章魚哥 QQ:3107073263 群:309816713 '自定義控制元件三步走: ' 1、定義一個該型別控制元件的例項對像 ' 2、新增到父控制元件的Controls集合中(對於沒有窗體介面的控制元件,2、3步可不要,如Timer控制元件) ' 3、定義該控制元件的屬性,尤其是位置屬性要定義 '********************************************************************************* Public Class Form1 '窗體的load事件,中載入控制元件。(當然你可以在任意地方載入) Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load My_Control_label() '生成label1標籤控制元件函式 End Sub '生成label1標籤控制元件函式 '將標籤控制元件新增到窗體中,然後定義標籤的text屬性、位置、顏色、字型等屬性。並新增Click事件處理函式 Private Sub My_Control_label() Dim label1 As New Label '定義一個標籤控制元件物件 Me.Controls.Add(label1) '新增到窗體控制元件集中,你也可以新增到其他控制元件集中, '如(Panel1.Controls.Add(label1))就是新增到panel1控制元件中 With label1 .Text = "新建標籤" .Location = New Point(10, 20) '定義控制元件位置,預設的是(0,0) .AutoSize = True .ForeColor = Color.Red .Font = New Font("楷體", 20) '定義字型 End With AddHandler label1.Click, AddressOf label_Click '新增click事件 End Sub '標籤的click事件,點選該標籤後,釋放該控制元件資源 Private Sub label_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Dim label1 As Label = CType(sender, Label) '獲取當前操作的控制元件物件,只有這樣才能對該控制元件進行操作 Me.Controls.Remove(label1) '將控制元件移除 label1.Dispose() '釋放控制元件資源 End Sub End Class
執行效果截圖: