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
相关推荐
初级代码游戏1 天前
套路化编程 C# winform 自适应缩放布局
开发语言·c#·winform·自动布局·自动缩放
Traced back3 天前
WinForms 线程安全三剑客详解
安全·c#·winform
PfCoder6 天前
WinForm真入门(23)---PictureBox 控件详细用法
开发语言·windows·c#·winform
PfCoder7 天前
C#中定时器之System.Timers.Timer
c#·.net·visual studio·winform
时光追逐者9 天前
使用 NanUI 快速创建具有现代用户界面的 WinForm 应用程序
ui·c#·.net·winform
刘欣的博客14 天前
c# winform 控件dock 停造位置、摆放顺序问题
c#·winform·dock停靠问题
故事不长丨21 天前
C#log4net详解:从入门到精通,配置、实战与框架对比
c#·.net·wpf·log4net·日志·winform·日志系统
Lv117700825 天前
WinForm常用控件功能介绍及使用模板
笔记·c#·visual studio·winform
Aevget25 天前
DevExpress WinForms中文教程:Data Grid - 如何自定义行预览部分?
界面控件·winform·devexpress·ui开发·.net 10