C# DatagridView常用操作汇总

C# DataGridView常用操作汇总

前言

在C# Winform应用程序开发中,DataGridView是一个非常实用的控件,它可以用来显示和编辑数据,而且比起ListView控件来说更加灵活,功能更加丰富。在本攻略中,我们会介绍DataGridView控件的常用操作,包括如何绑定数据源、如何设置单元格样式、如何实现排序过滤和单元格合并等。

绑定数据源

DataGridView控件可以与多种数据源进行绑定,包括DataTable、DataSet、BindingSource等。下面我们将演示如何使用DataTable和DataSet来绑定DataGridView。

绑定DataTable

下面是一个简单的DataTable:

DataTable table = new DataTable();
table.Columns.Add("ID", typeof(int));
table.Columns.Add("Name", typeof(string));
table.Columns.Add("Age", typeof(int));

table.Rows.Add(1, "张三", 18);
table.Rows.Add(2, "李四", 20);
table.Rows.Add(3, "王五", 22);

然后我们可以使用以下代码将DataTable绑定到DataGridView控件上:

dataGridView1.DataSource = table;

这样就完成了DataGridView控件和数据表的绑定。

绑定DataSet

如果你的数据需要分成多个表进行组织管理,那么可以使用DataSet来进行数据绑定。下面是一个简单的DataSet:

DataSet dataSet = new DataSet();

DataTable table1 = new DataTable();
table1.TableName = "学生";
table1.Columns.Add("ID", typeof(int));
table1.Columns.Add("Name", typeof(string));
table1.Columns.Add("Age", typeof(int));

table1.Rows.Add(1, "张三", 18);
table1.Rows.Add(2, "李四", 20);
table1.Rows.Add(3, "王五", 22);

DataTable table2 = new DataTable();
table2.TableName = "课程";
table2.Columns.Add("ID", typeof(int));
table2.Columns.Add("Name", typeof(string));
table2.Columns.Add("Teacher", typeof(string));

table2.Rows.Add(1, "数学", "张老师");
table2.Rows.Add(2, "英语", "李老师");
table2.Rows.Add(3, "物理", "王老师");

dataSet.Tables.Add(table1);
dataSet.Tables.Add(table2);

然后我们可以使用以下代码将DataSet绑定到DataGridView控件上:

dataGridView1.DataSource = dataSet.Tables["学生"];

这样就完成了DataGridView控件和数据集的绑定。

设置单元格样式

DataGridView控件提供了丰富的样式属性,可以用来设置单元格的字体、背景色、边框等样式。下面的代码演示了如何设置单元格的背景色:

private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
    if (e.ColumnIndex == 1 && e.RowIndex % 2 == 0)
    {
        e.CellStyle.BackColor = Color.LightGreen;
    }
}

这段代码会将第奇数行的第二列单元格的背景色设置为浅绿色。

实现排序和过滤

DataGridView控件提供了默认的排序和过滤功能,你也可以自定义排序和过滤规则。

实现排序

DataGridView控件提供了排序功能,只需要设置排序列和排序方向即可。下面的代码将第一列作为排序列,按照升序排序:

dataGridView1.Sort(dataGridView1.Columns[0], ListSortDirection.Ascending);

实现过滤

DataGridView控件提供了过滤功能,只需要设置过滤条件即可。下面的代码将第二列等于“张三”或者“李四”的行进行过滤:

(table1.DefaultView as DataView).RowFilter = "Name = '张三' or Name = '李四'";

实现单元格合并

DataGridView控件提供了单元格合并功能,可以将多个单元格合并成一个单元格。下面的代码将第一行的前三个单元格合并成一个单元格,并将其居中显示:

private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
    if (e.ColumnIndex == 0 && e.RowIndex == 0)
    {
        e.Graphics.FillRectangle(Brushes.White, e.CellBounds);

        using (SolidBrush brush = new SolidBrush(e.CellStyle.ForeColor))
        {
            StringFormat format = new StringFormat();
            format.LineAlignment = StringAlignment.Center;
            format.Alignment = StringAlignment.Center;
            e.Graphics.DrawString("合并的单元格", e.CellStyle.Font, brush, e.CellBounds, format);

            e.Handled = true;
        }
    }
}

以上就是C# DataGridView控件的常用操作汇总。如果你还不熟悉DataGridView控件,可以通过这些示例代码来加深理解,相信能够帮助你更好地使用这个控件。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# DatagridView常用操作汇总 - Python技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • C#调用Python脚本的简单示例

    接下来是详细讲解“C#调用Python脚本的简单示例”的完整攻略。 简介 在很多场景下,我们需要将C#程序与Python程序结合起来使用。例如,我们的C#程序需要处理大量的数据,而Python则拥有出色的科学计算库,可以快速地处理这些数据;或者我们想使用Python提供的机器学习库,通过C#程序接收Python模型的预测结果等等。 在这种情况下,我们需要实现…

    C# 2023年6月7日
    00
  • WPF的控件字符串内容使用StringFormat进行字符串转换

    在WPF中TextBlock的Text有时内容只需要改变个别数字,而不需要所以内容都修改,这时候就要使用StringFormat, 如: <TextBlock Text=”I have xxx friends”/> 这里面的xxx是个变量,那在Binding时应该怎样写呢 <TextBlock Text=”{Binding FirendNu…

    C# 2023年4月18日
    00
  • C#常用知识点简单回顾(有图有真相)

    “C#常用知识点简单回顾(有图有真相)” 的攻略主要内容包括以下几个方面: 1. C#基础语法回顾 这一部分主要讲解C#的基础语法,并通过代码示例让读者对C#的语法能够有一个初步的认识。具体内容包括以下几个方面: 1.1 基本数据类型 介绍了C#中常见的数据类型,如int,float,double等,并通过代码示例演示了如何使用这些数据类型。 1.2 条件语…

    C# 2023年6月1日
    00
  • 遍历文件系统目录树的深入理解

    遍历文件系统目录树的深入理解 遍历文件系统目录树是我们在开发的过程中经常会用到的操作之一,可以用来查找文件、文件夹,或者对一个文件夹下面的所有文件进行批量处理。本文将介绍如何使用 Python 的 os 模块来遍历文件系统目录树。 使用 os.walk() 方法 Python 提供了 os.walk() 方法,它可以用来遍历目录树。这个方法的返回值是一个迭代…

    C# 2023年6月8日
    00
  • c#判断数据库服务器是否已经启动的方法

    关于“c#判断数据库服务器是否已经启动的方法”,下面是完整的攻略: 1. 方法概述 在C#中,可以通过Ping类判断数据库服务器是否已经启动。Ping类是通过发送 Internet 控制消息协议 (ICMP) Echo 请求和接收 ICMP Echo 回应报文来测试连接的,可以用来测试远程主机是否可达。 2. 方法实现 在此提供一种实现思路:在C#中通过使用…

    C# 2023年6月2日
    00
  • C#基础知识系列八const和readonly关键字详细介绍

    C#基础知识系列八:const和readonly关键字详细介绍 const和readonly的区别 在C#中,常量可以使用const和readonly关键字来定义。它们的区别在于: const定义的常量是静态编译时常量,只能在定义时赋值,不可以改变,也不需要实例化即可使用。这些常量的值必须在编译时就确定下来,也就是说,它们的值必须是编译器常量。因此,cons…

    C# 2023年5月15日
    00
  • Asp.net(C#)读取数据库并生成JS文件制作首页图片切换效果(附demo源码下载)

    题目中所提到的“Asp.net(C#)读取数据库并生成JS文件制作首页图片切换效果(附demo源码下载)”借鉴了服务器端动态生成JavaScript的方法,如下所述: 准备工作 首先,确保你的电脑上安装了Visual Studio和SQL Server数据库管理系统。 其次,在Visual Studio中创建一个名为“ImageSwitcher”的Web应用…

    C# 2023年5月31日
    00
  • Asp.Mvc 2.0实现用户登录与注销功能实例讲解(2)

    下面是”Asp.Mvc 2.0实现用户登录与注销功能实例讲解(2)”的完整攻略: 1. 准备工作 在开始实现用户登录和注销功能之前,我们需要先创建一个基本的MVC应用程序并配置好实体框架(Entity Framework)。接下来我们需要添加一个用户管理模块(例如ASP.NET Identity库)来实现用户的身份验证和授权。 具体操作步骤如下: 创建一个新…

    C# 2023年5月31日
    00
合作推广
合作推广
分享本页
返回顶部