1. 程式人生 > >章魚哥—VB.NET 如何實現程式碼自動生成控制元件 新增繫結事件

章魚哥—VB.NET 如何實現程式碼自動生成控制元件 新增繫結事件

這個問題其實非常簡單,我看到網上也有很多的例子,大家只要一搜就會明白。
但是我在這裡試圖比較詳細的介紹自動生成控制元件的步驟
'********************************************************************************
'作者:章魚哥  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

執行效果截圖: