news 2026/7/6 20:49:42

DevExpress WinForms中文教程:Data Grid - 如何在代码中处理列?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
DevExpress WinForms中文教程:Data Grid - 如何在代码中处理列?

在本教程中,您将学习如何在分配数据源时启用或禁用自动列生成,如何手动填充列集合和访问单个列。请注意,本教程的重点是在代码中完成这些任务。显然您也可以使用网格的集成设计器对话框和Visual Studio的属性网格来做同样的事情,这将在单独的教程中进行描述。

P.S:DevExpress WinForms拥有180+组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!

DevExpress新旧版本帮助文档下载欢迎进QQ qun获取:169725316

起点

应用程序最初包含一个网格控件,该控件没有任何列,也没有绑定到数据源。该项目连接到示例AdventureWorks数据库,您可以在DevExpress WinForms网格控件的数据源向导中看到它。

自动检索数据源字段

不要使用向导将网格绑定到数据,而是切换到代码视图,并在表单的构造函数中设置GridControl.DataSource属性。

C#

gridControl.DataSource = dimProductBindingSource;

VB.NET

gridControl.DataSource = dimProductBindingSource

运行应用程序,查看是否为绑定数据源中的每个可用字段自动生成列。

禁用自动列生成功能

如果您只需要将控件绑定到数据,而不需要自动生成所有列,请设置ColumnViewOptionsBehavior.AutoPopulateColumns属性设置为false。

C#

gridView1.OptionsBehavior.AutoPopulateColumns = false; gridControl.DataSource = dimProductBindingSource;

VB.NET

gridView1.OptionsBehavior.AutoPopulateColumns = False gridControl.DataSource = dimProductBindingSource

如果您现在运行这个应用,会再次看到一个空白的网格控件,尽管它有一个绑定的数据源。

手动填充列

网格视图提供了一种方法,可以删除以前创建的所有列,并为每个数据源字段创建一个列,这与您打开ColumnViewOptionsBehavior.AutoPopulateColumns选项时看到的操作非常相似。

C#

gridView1.PopulateColumns();

VB.NET

gridView1.PopulateColumns()

运行应用程序来再次查看视图中的列。

修改列集合

所有网格控件列都是GridColumn类实例,存储在View的ColumnView.Columns集合中。您可以根据需要自由修改此集合,例如您可以删除为DealerPrice字段自动生成的列。

C#

gridView1.Columns.Remove(gridView1.Columns["DealerPrice"]);

VB.NET

gridView1.Columns.Remove(gridView1.Columns("DealerPrice"))

启动应用程序,确保该字段的列不再存在。

现在创建一个绑定到DealerPrice字段的新列。

C#

GridColumn myCol = gridView1.Columns.AddVisible("DealerPrice", "My Column");

VB.NET

Dim myCol As GridColumn = gridView1.Columns.AddVisible("DealerPrice", "My Column")

要将新创建的列移动到视图中的第一个位置,请将其GridColumn.VisibleIndex属性设置为0。

C#

myCol.VisibleIndex = 0;

VB.NET

myCol.VisibleIndex = 0

运行应用程序来检查位置是否确实发生了变化,注意添加的列格式没有正确设置为显示货币符号,ListPrice列也是如此。

看看访问单个列的两种不同方式,一种是通过集合中的索引,因为您知道在代码中添加的列是最后一个;另一种是通过字段名,这就是访问ListPrice列的方式。设置列FormatInfo.FormatType和FormatInfo.FormatString属性来应用适当的格式化。

C#

gridView1.Columns[gridView1.Columns.Count - 1].DisplayFormat.FormatType = gridView1.Columns["ListPrice"].DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric; gridView1.Columns[gridView1.Columns.Count - 1].DisplayFormat.FormatString = gridView1.Columns["ListPrice"].DisplayFormat.FormatString = "C2";

最后,更改在代码中创建的列外观,您仍然可以修改添加到ColumnView.Columns集合中的同一列对象。

C#

myCol.AppearanceHeader.ForeColor = Color.Crimson; myCol.AppearanceCell.BackColor = Color.LightGoldenrodYellow;

VB.NET

myCol.AppearanceHeader.ForeColor = Color.Crimson myCol.AppearanceCell.BackColor = Color.LightGoldenrodYellow

运行应用程序并查看仅应用于一个列的外观设置更改。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/6 20:49:09

GoHBase最佳实践:从开发到部署的完整工作流

GoHBase最佳实践:从开发到部署的完整工作流 【免费下载链接】gohbase Pure-Go HBase client 项目地址: https://gitcode.com/gh_mirrors/go/gohbase GoHBase是一个纯Go语言实现的HBase客户端,为Go开发者提供了高效、便捷的HBase数据库访问能力。本…

作者头像 李华
网站建设 2026/7/6 20:44:14

Mix 2.0性能优化指南:大型Flutter应用中的样式管理策略

Mix 2.0性能优化指南:大型Flutter应用中的样式管理策略 【免费下载链接】mix A styling system for Flutter 项目地址: https://gitcode.com/gh_mirrors/mix4/mix 在当今复杂的Flutter应用开发中,样式管理往往成为性能瓶颈的隐形杀手。Mix 2.0作为…

作者头像 李华