VB.NET 动态创建控件
像Notepad++那样,动态创建一个Tab页面,非常方便同时查看多个文档,根据需求使用动态控件,瞬间提高整个软件的人性化和专业性。
动态控件核心只有两个,创建和为其添加事件。
在窗体上放入一个TabControl,在里面再放上一个Listview,外面再放一个按钮用来创建动态控件。
代码如下:
'鼠标单击事件 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
注释写得非常清楚,自己一点点理解为上。