2024年终活动

DevExpress控件使用交流,DevExpress中国社区Dev联系电话 联系电话:023-68661681

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

来源:   发布时间:2024-10-23   浏览:145次

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

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

获取DevExpress WinForms v24.1正式版下载

DevExpress技术交流群10:532598169      欢迎一起进群讨论

起点

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

DevExpress WinForms中文教程图集
自动检索数据源字段

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

C#

gridControl.DataSource = dimProductBindingSource;

VB.NET

gridControl.DataSource = dimProductBindingSource

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

DevExpress WinForms中文教程图集
禁用自动列生成功能

如果您只需要将控件绑定到数据,而不需要自动生成所有列,请设置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列也是如此。

DevExpress WinForms中文教程图集

看看访问单个列的两种不同方式,一种是通过集合中的索引,因为您知道在代码中添加的列是最后一个;另一种是通过字段名,这就是访问ListPrice列的方式。设置列FormatInfo.FormatTypeFormatInfo.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";
DevExpress WinForms中文教程图集

最后,更改在代码中创建的列外观,您仍然可以修改添加到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

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

DevExpress WinForms中文教程图集

更多产品资讯及授权,欢迎“立即咨询”!


更多DevExpress线上公开课、中文教程资讯请上中文网获取

DevExpress v24.1全新发布
本站文章除注明转载外,均为本站原创或翻译
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明:文章转载自:DevExpress控件中文网 [https://www.devexpresscn.com/]
本文地址:https://www.devexpresscn.com/post/4902.html

相关产品: DevExpress WinForms Subscription, DevExpress Universal Subscription,

扫码咨询
电话咨询
023-68661681
返回
顶部