VB.NET 动态创建控件

像Notepad++那样,动态创建一个Tab页面,非常方便同时查看多个文档,根据需求使用动态控件,瞬间提高整个软件的人性化和专业性

动态控件核心只有两个,创建和为其添加事件。

在窗体上放入一个TabControl,在里面再放上一个Listview,外面再放一个按钮用来创建动态控件。

2013012947705001

代码如下:

'鼠标单击事件
Private Sub MyBtnClick(ByVal sender As System.Object, ByVal e As MouseEventArgs)
    Dim btn As ListView
    btn = CType(sender, ListView)
    MessageBox.Show(btn.SelectedItems.Item(0).Text)
End Sub
    '表头单击事件
Private Sub MyColClick(ByVal sender As System.Object, ByVal e As ColumnClickEventArgs)
    Dim btn As ListView
    btn = CType(sender, ListView)
    'e.Column返回用户单击表头的Index
    MessageBox.Show(btn.Columns.Item(e.Column).Text)
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
   TabControl1.TabPages.Add("2")
        Dim btn As New ListView
        btn.Dock = DockStyle.Fill
        btn.GridLines = True
        btn.View = View.Details
        btn.Columns.Add("123")
        btn.Columns.Add("123")
        btn.Columns.Add("123")
        For i As Integer = 1 To 100
            btn.Items.Add(Rnd() * i * 100)
        Next
        '如果想给这个按钮添加事件
        AddHandler btn.MouseClick, AddressOf MyBtnClick
        AddHandler btn.ColumnClick, AddressOf MyColClick
        '把新建的控件放在窗体上
        'Me.Controls.Add(btn)
        '把控件放到一个容器上
    TabControl1.TabPages(TabControl1.TabCount - 1).Controls.Add(btn)
    '这两行代码的结果是一样的,下面的是从控件里设置父级控件,上面的是将控件放入父级控件
     'btn.Parent = TabControl1.TabPages(TabControl1.TabPages.Count - 1)
End Sub

注释写得非常清楚,自己一点点理解为上。

2013012947706501

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注