WinForm中的DataGridView 控件

一、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
相关推荐
CSharp精选营2 天前
都是微软亲儿子,WPF凭啥干不掉WinForm?这3个场景说明白了
c#·wpf·跨平台·winform
小贺儿开发9 天前
Unity3D 家居视频遥控效果演示
unity·udp·人机交互·网络通信·winform·远程·photon
czhc114007566310 天前
winform 330 跨线程 异步
wpf·线程·winform
light blue bird11 天前
原生控件GDI完成作业协同界面
jvm·数据库·.net·winform·gdi+界面
light blue bird25 天前
MES/ERP大数据报表条件索引查询组件
数据库·.net·winform·t-sql·大数据报表
香煎三文鱼1 个月前
winform读取不到App.config配置文件中的配置信息
winform
Aevget1 个月前
界面控件DevExpress WinForms中文教程:Data Grid - 数据绑定(二)
.net·界面控件·winform·devexpress·ui开发
小曹要微笑1 个月前
WinForms 验证码类的实现
c#·验证码·winform·验证码类
我本梁人1 个月前
Winform实现多语言切换
winform
light blue bird2 个月前
产线多并发客户端指令操作场景组件
jvm·oracle·.net·winform