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#控制台基础 list<>初始化的两种方法

    C#中的list是一种通用的、可动态调整的数据结构,通过它可以方便地存储和操作数据。在控制台程序中,初始化list最常见的两种方式是使用构造函数和使用集合初始化器。 使用构造函数初始化list list的构造函数可以接受任何实现IEnumerable接口的对象,它会根据传入的元素类型自动推断出泛型参数类型。下面是使用构造函数初始化list的示例代码: Lis…

    C# 2023年6月1日
    00
  • C#字符串常见操作总结详解

    C#字符串常见操作总结详解 本文将为您详细介绍C#中关于字符串的常见操作,包括字符串的创建、比较、连接、替换、分割、转换等操作。 字符串的创建 在C#中,字符串可以通过以下方式创建: 字符串字面量 csharpstring str1 = “hello, world”; 使用关键字new创建字符串对象 csharpstring str2 = new strin…

    C# 2023年5月15日
    00
  • C#.net实现在Winform中从internet下载文件的方法

    C#语言是一个功能强大的编程语言,它可以实现在Winform中从internet下载文件。本文将介绍如何使用C#.net编程语言实现Winform中下载文件的方法。本文的讲解过程分为以下四步: 使用HttpWebRequest连接到internet并下载文件 创建下载进度条 保存下载文件 报告下载进度 下面详细讲解每一步的实现方法。 第一步 使用HttpWe…

    C# 2023年6月1日
    00
  • 一次.net core异步线程设置超时时间的实战记录

    一次.NET Core异步线程设置超时时间的实战记录需要注意以下几个步骤: 1. 使用 CancellationToken 以便能够取消异步操作 CancellationToken 是一个用于在异步执行期间通知它们应该被取消的对象。在异步操作中可以使用 CancellationToken 实例来获得通知。 在C#中,可以通过以下代码创建一个 Cancella…

    C# 2023年6月3日
    00
  • 在 ASP.NET Core 中为 gRPC 服务添加全局异常处理

    在ASP.NET Core中,gRPC是一种常见的跨平台通信方式,它可以帮助开发者在不同的平台之间进行高效的通信。在本攻略中,我们将详细介绍如何为gRPC服务添加全局异常处理,并提供两个示例来说明其用法。 以下是两个示例,介绍如何为gRPC服务添加全局异常处理: 示例一:使用全局异常过滤器 首先,我们需要创建一个全局异常过滤器: public class G…

    C# 2023年5月15日
    00
  • ASP.net百度主动推送功能实现代码

    关于“ASP.net百度主动推送功能实现代码”的攻略,我可以为您提供以下内容: 什么是ASP.net百度主动推送? ASP.net百度主动推送(ASP.NET Baidu auto push)是指在网站更新后,通过代码实现将最新的页面信息主动向百度搜索引擎提交,从而使得百度更快地收录您网站的最新内容,并提供更好的搜索结果。ASP.net百度主动推送有利于SE…

    C# 2023年5月31日
    00
  • C#实现pdf导出 .Net导出pdf文件

    下面我将为你详细讲解使用C#来实现PDF导出的完整攻略。 1. 前置要求 在使用C#实现PDF导出之前,我们需要先安装一个PDF生成库。在此推荐使用iTextSharp,它是一个自由开源的PDF库,具有强大的PDF文档操作和PDF文件生成功能。你可以通过NuGet包管理器来安装iTextSharp,只需要在Visual Studio中右击项目,然后选择“管理…

    C# 2023年5月15日
    00
  • .Net行为型设计模式之中介者模式(Mediator)

    .Net行为型设计模式之中介者模式(Mediator) 中介者模式是一种行为型设计模式,它的目的是减少对象之间的耦合度,增强对象之间的协作性,从而提高整个系统的灵活性和可维护性。 在中介者模式中,对象之间的通信都是通过中介者进行的,而不是直接相互引用。这样一来,系统中的每个对象都只需要跟中介者通信,而不用关心其他对象的存在,使得系统更加松耦合,也更加容易扩展…

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