在本教程中,您将学习如何在分配数据源时启用或禁用自动列生成,如何手动填充列集合和访问单个列。请注意,本教程的重点是在代码中完成这些任务。显然您也可以使用网格的集成设计器对话框和Visual Studio的属性网格来做同样的事情,这将在单独的教程中进行描述。
P.S:DevExpress WinForms拥有180+组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!
获取DevExpress WinForms v24.1正式版下载
DevExpress技术交流群10:532598169 欢迎一起进群讨论
起点
应用程序最初包含一个网格控件,该控件没有任何列,也没有绑定到数据源。该项目连接到示例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
运行应用程序并查看仅应用于一个列的外观设置更改。
更多产品资讯及授权,欢迎“立即咨询”!
更多DevExpress线上公开课、中文教程资讯请上中文网获取
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明:文章转载自:DevExpress控件中文网 [https://www.devexpresscn.com/]
本文地址:https://www.devexpresscn.com/post/4902.html
相关产品: DevExpress WinForms Subscription, DevExpress Universal Subscription,