章鱼哥—VB.NET 如何实现代码自动生成控件 添加绑定事件

时间:2021-11-26 14:04:36
这个问题其实非常简单,我看到网上也有很多的例子,大家只要一搜就会明白。
但是我在这里试图比较详细的介绍自动生成控件的步骤
'********************************************************************************
'作者:章鱼哥  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

执行效果截图:
章鱼哥—VB.NET 如何实现代码自动生成控件 添加绑定事件