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
相关推荐
神秘的MT15 天前
C# WinForm Socket 类 常用方法 (C# .NET,TCP 场景)
服务器·网络·学习·tcp/ip·c#·winform
C囧囧16 天前
利用SharpShell为属性添加标签页
c#·winform·扩展属性·sharpshell
张人玉1 个月前
C# WinForms——工厂管理系统(C# WinForms)
数据库·sqlite·c#·winform
神秘的MT1 个月前
SQL Server 分页查询 ROW_NUMBER () OFFSET...FETCH游标(Cursor) 数据插入
数据库·sql·学习·c#·winform
源之缘-OFD先行者2 个月前
破界渲染:WinForm下的FFmpeg+Vortice极速推流引擎
ffmpeg·winform·推流·h264
焚 城2 个月前
Winform双语实现
c#·winform
light blue bird3 个月前
组装工序资源功能工序路径菜单组件
jvm·数据库·winform·gdi+界面·多节点端
何以解忧唯有撸码4 个月前
C# 视频录制监控系统
c#·winform
何以解忧唯有撸码4 个月前
玩转控件:封装个带图片的Label控件
c#·winform·自定义控件·封装控件·控件扩展
czhc11400756634 个月前
winform 4 12 winform自绘控件
winform