编辑
2025-09-27
C#
00

目录

安装AdvancedDataGridView
Nuget 安装
创建WinForms项目
使用AdvancedDataGridView控件
设计界面
代码示例
运行程序
高级功能
排序功能
自定义过滤器
导出数据
总结

AdvancedDataGridView是一个功能强大的控件,扩展了标准的DataGridView,提供了更多的功能和灵活性。本文将介绍如何在WinForms应用程序中使用AdvancedDataGridView,并通过一个详细的示例来展示其用法。

安装AdvancedDataGridView

首先,我们需要从GitHub上获取AdvancedDataGridView控件。你可以从以下链接下载:

C#
https://github.com/davidegironi/advanceddatagridviews

下载完成后,将控件添加到你的项目中。

Nuget 安装

C#
NuGet\Install-Package DG.AdvancedDataGridView -Version 1.2.29301.14

image.png

创建WinForms项目

  1. 打开Visual Studio,创建一个新的WinForms项目。
  2. 将AdvancedDataGridView控件添加到工具箱中。你可以通过右键点击工具箱,选择“选择项...”,然后浏览到下载的AdvancedDataGridView.dll文件来完成这一步。

使用AdvancedDataGridView控件

设计界面

在设计器中,将AdvancedDataGridView控件拖放到你的窗体上,并设置其名称为advancedDataGridView1

image.png

代码示例

在Form的代码中,我们将设置AdvancedDataGridView的数据源,并演示一些高级功能。

C#
using System; using System.Data; using System.Windows.Forms; using AdvancedDataGridView; namespace AdvancedDataGridViewExample { public partial class Form1 : Form { public Form1() { InitializeComponent(); LoadData(); } private void LoadData() { // 创建一个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, "Alice", 30); table.Rows.Add(2, "Bob", 25); table.Rows.Add(3, "Charlie", 35); // 设置AdvancedDataGridView的数据源 advancedDataGridView1.DataSource = table; // 启用过滤功能 advancedDataGridView1.FilterAndSortEnabled = true; // 设置列的过滤器 foreach (DataGridViewColumn column in advancedDataGridView1.Columns) { column.FilteringEnabled = true; } // 处理过滤事件 advancedDataGridView1.FilterStringChanged += AdvancedDataGridView1_FilterStringChanged; } private void AdvancedDataGridView1_FilterStringChanged(object sender, EventArgs e) { // 获取当前的过滤字符串 string filterString = advancedDataGridView1.FilterString; MessageBox.Show($"当前过滤字符串: {filterString}"); } } }

运行程序

运行程序,你将看到一个包含示例数据的AdvancedDataGridView控件。你可以在列标题上点击以启用过滤功能,并根据需要进行数据筛选。

image.png

高级功能

排序功能

AdvancedDataGridView不仅支持过滤,还支持列排序。你可以通过点击列标题来进行升序或降序排序。

自定义过滤器

你可以为每一列设置自定义的过滤器。例如,可以为字符串列设置文本框过滤器,为日期列设置日期选择器过滤器。

C#
private void LoadData() { // ... 之前的代码 ... // 为Name列设置自定义过滤器 advancedDataGridView1.Columns["Name"].FilteringEnabled = true; advancedDataGridView1.Columns["Name"].FilterString = "[Name] LIKE '%测试%'"; }

导出数据

你可以轻松地将AdvancedDataGridView中的数据导出到Excel或CSV文件中。以下是一个将数据导出到CSV文件的示例:

image.png

C#
private void btnExport_Click(object sender, EventArgs e) { SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.Filter = "CSV文件 (*.csv)|*.csv"; if (saveFileDialog.ShowDialog() == DialogResult.OK) { ExportToCsv(saveFileDialog.FileName); } } private void ExportToCsv(string filePath) { var sb = new System.Text.StringBuilder(); var headers = advancedDataGridView1.Columns.Cast<DataGridViewColumn>(); sb.AppendLine(string.Join(",", headers.Select(column => "\"" + column.HeaderText + "\""))); foreach (DataGridViewRow row in advancedDataGridView1.Rows) { var cells = row.Cells.Cast<DataGridViewCell>(); sb.AppendLine(string.Join(",", cells.Select(cell => "\"" + cell.Value + "\""))); } System.IO.File.WriteAllText(filePath, sb.ToString()); }

总结

AdvancedDataGridView是一个非常有用的控件,特别适合需要高级数据过滤和排序功能的应用程序。通过本文的示例,你应该能够在你的WinForms项目中轻松集成和使用AdvancedDataGridView控件。

如果你遇到任何问题或需要更多功能,请参考AdvancedDataGridView的GitHub页面获取更多信息和支持。

本文作者:技术老小子

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!