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
相关推荐
刘欣的博客4 天前
c# winform 控件dock 停造位置、摆放顺序问题
c#·winform·dock停靠问题
故事不长丨11 天前
C#log4net详解:从入门到精通,配置、实战与框架对比
c#·.net·wpf·log4net·日志·winform·日志系统
Lv117700815 天前
WinForm常用控件功能介绍及使用模板
笔记·c#·visual studio·winform
Aevget16 天前
DevExpress WinForms中文教程:Data Grid - 如何自定义行预览部分?
界面控件·winform·devexpress·ui开发·.net 10
Crazy Struggle23 天前
C# 不依赖 OpenCV 的图像处理算法:滤波、锐化与边缘检测
.net·开源项目·winform
泉飒24 天前
WinForm与WPF的异同点
wpf·winform
c#上位机25 天前
Winform开发中Label控件居中显示
c#·winform
刘欣的博客1 个月前
第一次使用antdui(AntdUI说明一)
winform·antdui
Crazy Struggle1 个月前
一款轻量级 WinForm 开源控件库,让老界面秒变高颜值
.net·winform·ui控件库