VB窗体动态创建较少,今天,试着弄一个,专为解答之用。
首先创建一个空白窗体,调整大小,修改名称,双击窗体进入代码编辑界面:
Public Class VB解答专用窗体
Dim 数据列表 As DataGridView
Dim 输入框 As TextBox
Private Sub VB解答专用窗体_Load(sender As Object, e As EventArgs) Handles MyBase.Load
数据列表 = New DataGridView
数据列表.Parent = Me
数据列表.Columns.Add("序列", "序列")
数据列表.Columns.Add("内容", "内容")
'数据列表.Rows.Add(5)
AddHandler 数据列表.RowStateChanged, AddressOf 数据列表行状态更改
输入框 = New TextBox
输入框.Parent = Me
AddHandler 输入框.TextChanged, AddressOf 输入框输入更改
数据列表.Location = New Point(输入框.Width + 5, 2)
AddHandler 数据列表.CellDoubleClick, AddressOf 单元格双击发生
End Sub
Private Sub 数据列表行状态更改(sender As Object, e As DataGridViewRowStateChangedEventArgs)
数据列表.Rows(e.Row.Index).Cells(0).Value = e.Row.Index
e.Row.HeaderCell.Value = String.Format("{0}", e.Row.Index + 1)
End Sub
Private Sub 输入框输入更改(sender As Object, e As EventArgs)
数据列表.Rows.Add(Integer.Parse(输入框.Text))
End Sub
Private Sub 单元格双击发生(sender As Object, e As DataGridViewCellEventArgs)
数据列表.Rows.Insert(e.RowIndex, 1)
End Sub
End Class
接着创建一个控件,并在窗体加载事件中对控件进行一些设置和添加一个事件:
从上图看到有波浪线,鼠标移动到波浪线处,在弹出的纠正错误框中选择生成方法存根:
删除自动生成事件中的Throw New NotImplementedException代码,写自己要处理的代码,这里以论坛提问为例,鼠标点击自动填充序号:
添加事件处理代码:
运行程序:
再次创建一个文本框控件,如上所述,同时简单设置2个控件的位置:
再次运行程序,在文本框中输入数字2,看运行效果图:
可以看到创建了2行,同时自动添加序列各行的序值。https://bbs.youkuaiyun.com/topics/392550942