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

📅 2026/7/6 20:49:52
DevExpress WinForms中文教程:Data Grid - 如何在代码中处理列?
在本教程中您将学习如何在分配数据源时启用或禁用自动列生成如何手动填充列集合和访问单个列。请注意本教程的重点是在代码中完成这些任务。显然您也可以使用网格的集成设计器对话框和Visual Studio的属性网格来做同样的事情这将在单独的教程中进行描述。P.SDevExpress WinForms拥有180组件和UI库能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序无论是Office风格的界面还是分析处理大批量的业务数据它都能轻松胜任DevExpress新旧版本帮助文档下载欢迎进QQ qun获取169725316起点应用程序最初包含一个网格控件该控件没有任何列也没有绑定到数据源。该项目连接到示例AdventureWorks数据库您可以在DevExpress WinForms网格控件的数据源向导中看到它。自动检索数据源字段不要使用向导将网格绑定到数据而是切换到代码视图并在表单的构造函数中设置GridControl.DataSource属性。C#gridControl.DataSource dimProductBindingSource;VB.NETgridControl.DataSource dimProductBindingSource运行应用程序查看是否为绑定数据源中的每个可用字段自动生成列。禁用自动列生成功能如果您只需要将控件绑定到数据而不需要自动生成所有列请设置ColumnViewOptionsBehavior.AutoPopulateColumns属性设置为false。C#gridView1.OptionsBehavior.AutoPopulateColumns false; gridControl.DataSource dimProductBindingSource;VB.NETgridView1.OptionsBehavior.AutoPopulateColumns False gridControl.DataSource dimProductBindingSource如果您现在运行这个应用会再次看到一个空白的网格控件尽管它有一个绑定的数据源。手动填充列网格视图提供了一种方法可以删除以前创建的所有列并为每个数据源字段创建一个列这与您打开ColumnViewOptionsBehavior.AutoPopulateColumns选项时看到的操作非常相似。C#gridView1.PopulateColumns();VB.NETgridView1.PopulateColumns()运行应用程序来再次查看视图中的列。修改列集合所有网格控件列都是GridColumn类实例存储在View的ColumnView.Columns集合中。您可以根据需要自由修改此集合例如您可以删除为DealerPrice字段自动生成的列。C#gridView1.Columns.Remove(gridView1.Columns[DealerPrice]);VB.NETgridView1.Columns.Remove(gridView1.Columns(DealerPrice))启动应用程序确保该字段的列不再存在。现在创建一个绑定到DealerPrice字段的新列。C#GridColumn myCol gridView1.Columns.AddVisible(DealerPrice, My Column);VB.NETDim myCol As GridColumn gridView1.Columns.AddVisible(DealerPrice, My Column)要将新创建的列移动到视图中的第一个位置请将其GridColumn.VisibleIndex属性设置为0。C#myCol.VisibleIndex 0;VB.NETmyCol.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.NETmyCol.AppearanceHeader.ForeColor Color.Crimson myCol.AppearanceCell.BackColor Color.LightGoldenrodYellow运行应用程序并查看仅应用于一个列的外观设置更改。