一、DataGridView 是什么
DataGridView 是 WinForm 中最常用、最强大的数据展示控件,主要用于:显示表格数据、绑定数据库 / 集合、提供编辑、排序、选择等功能。常见应用场景:显示数据库查询结果、日志列表、报表界面、配置管理界面、实时数据监控
二、添加行列
vbnet
Dim dgv As New DataGridView()
dgv.Columns.Add("colName", "姓名")
dgv.Columns.Add("colAge", "年龄")
dgv.Columns.Add("colScore", "成绩")
dgv.Rows.Add("张三", 18, 90)
dgv.Rows.Add("李四", 20, 85)
三、常用属性
- 是否允许用户新增、删除行
vbnet
dgv.AllowUserToAddRows = False
dgv.AllowUserToDeleteRows = False
- 只读
vbnet
dgv.ReadOnly = True
- 自动列宽
vbnet
dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill
四、绑定数据
- 绑定 List
vbnet
Public Class Student
Public Property Name As String
Public Property Age As Integer
Public Property Score As Integer
End Class
vbnet
Dim list As New List(Of Student) From {
New Student With {.Name = "张三", .Age = 18, .Score = 90},
New Student With {.Name = "李四", .Age = 20, .Score = 85}
}
dgv.AutoGenerateColumns = True
dgv.DataSource = list
- 绑定 DataTable
vbnet
Dim dt As New DataTable()
dt.Columns.Add("Name")
dt.Columns.Add("Age")
dt.Columns.Add("Score")
dt.Rows.Add("王五", 19, 88)
dt.Rows.Add("赵六", 21, 92)
dgv.DataSource = dt
五、常见事件
- CellClick:获取点击的行数据
vbnet
Private Sub dgv_CellClick(sender As Object, e As DataGridViewCellEventArgs) _
Handles dgv.CellClick
If e.RowIndex < 0 Then Return
Dim name = dgv.Rows(e.RowIndex).Cells("Name").Value.ToString()
MessageBox.Show(name)
End Sub
- CellValueChanged:监听数据修改
vbnet
Private Sub dgv_CellValueChanged(...) Handles dgv.CellValueChanged
MessageBox.Show("数据已修改")
End Sub