当前位置: 首页 > news >正文

界面控件DevExpress WinForms中文教程:Banded Grid View - API

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

DevExpress WinForms中文使用教程图集

在本教程中,您将学习如何使用DevExpress WinForms在代码中创建带状和高级带状布局。首先将主视图切换到所需的类型,然后您将创建第一级带状和子带状来创建层次结构。初始化带状之后,将创建列并将它们链接到父带状,最后您将切换到高级带状网格视图,把列移动到第二行,并让列标题填充它们下面的空白空间。

获取DevExpress WinForms 正式版下载

开始

从一个绑定到Car数据库的Grid Control应用程序开始。

DevExpress WinForms中文使用教程图集

切换到带状网格视图

Ribbon控件中的Create Banded Layout按钮将启动把布局切换到带状视图的代码,在Click事件处理程序中,创建一个BandedGridView实例,禁用其ColumnViewOptionsBehavior.AutoPopulateColumns选项,并将结果对象分配给网格的GridControl.MainView 属性。

C#

private void btnCreateBandedLayout_ItemClick(object sender, ItemClickEventArgs e) {
// Switch to the Banded Grid View.
BandedGridView view = new BandedGridView();
view.OptionsBehavior.AutoPopulateColumns = false;
gridControl1.MainView = view;
}

运行应用程序并单击Create Banded Layout按钮,布局切换了,但是新创建的View是空的,因为禁用了自动列生成。

DevExpress WinForms中文使用教程图集

创建顶级Bands

关闭应用程序并返回处理程序代码,创建GridBand实例,在顶层分层级别添加Main、Performance Attributes和Notes band,将对象添加到视图的BandedGridView.Bands集合中。

C#

private void btnCreateBandedLayout_ItemClick(object sender, ItemClickEventArgs e) {
// ...
// Create top-level bands.
GridBand bandMain = new GridBand() { Name = "bandMain", Caption = "Main" };
GridBand bandPerformanceAttributes = new GridBand() { Name = "bandPerformance", Caption = "Performance Attributes" };
GridBand bandNotes = new GridBand() { Name = "bandNotes", Caption = "Notes" };
view.Bands.AddRange(new GridBand[] { bandMain, bandPerformanceAttributes, bandNotes });
}

运行应用程序,单击按钮,现在视图将显示bands。

DevExpress WinForms中文使用教程图集

创建嵌套Bands

这一次,创建嵌套bands,为此创建新的band对象并将它们添加到主band的GridBand.Children集合中。

C#

private void btnCreateBandedLayout_ItemClick(object sender, ItemClickEventArgs e) {
// ...
// Create nested bands.
GridBand bandModel = new GridBand { Name = "bandModel", Caption = "Model" };
GridBand bandPrice = new GridBand { Name = "bandPrice", Caption = "Price" };
bandMain.Children.AddRange(new GridBand[] { bandModel, bandPrice });
}

运行应用程序并单击按钮来查看新的分层band结构。

DevExpress WinForms中文使用教程图集

创建带状列

返回到单击处理程序代码并创建由BandedGridColumn对象表示的列,初始化它们的GridColumn.FieldName属性并使它们可见,将创建的列添加到视图的BandedGridView.Columns集合中。

使用GridColumn.DisplayFormat属性将Price列值格式化为货币。

C#

private void btnCreateBandedLayout_ItemClick(object sender, ItemClickEventArgs e) {
// ...
// Create banded grid columns and make them visible.
BandedGridColumn colTrademark = new BandedGridColumn() { Name = "colTrademark", FieldName = "Trademark", Visible = true };
BandedGridColumn colModel = new BandedGridColumn() { Name = "colModel", FieldName = "Model", Visible = true };
BandedGridColumn colCategory = new BandedGridColumn() { Name = "colCategory", FieldName = "Category", Visible = true };
BandedGridColumn colPrice = new BandedGridColumn() { Name = "colPrice", FieldName = "Price", Visible = true };
BandedGridColumn colHP = new BandedGridColumn() { Name = "colHP", FieldName = "HP", Visible = true };
BandedGridColumn colLiter = new BandedGridColumn() { Name = "colLiter", FieldName = "Liter", Visible = true };
BandedGridColumn colCyl = new BandedGridColumn() { Name = "colCyl", FieldName = "Cyl", Visible = true };
BandedGridColumn colDescription = new BandedGridColumn() { Name = "colDescription", FieldName = "Description", Visible = true };
BandedGridColumn colPicture = new BandedGridColumn() { Name = "colPicture", FieldName = "Picture", Visible = true };
view.Columns.AddRange(new BandedGridColumn[] { colTrademark, colModel, colCategory, colPrice, colHP, colLiter, colCyl, colDescription, colPicture });// Format the Price column values as currency.
colPrice.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
colPrice.DisplayFormat.FormatString = "c2";
}

运行应用程序并再次点击按钮,列没有显示在视图中,这是因为它们还没有链接到bands 。

DevExpress WinForms中文使用教程图集

为Bands分配列

要将列添加到Bands中,请设置列的BandedGridColumn.OwnerBand属性。

C#

private void btnCreateBandedLayout_ItemClick(object sender, ItemClickEventArgs e) {
// ...
// Assign columns to bands.
colTrademark.OwnerBand = bandModel;
colModel.OwnerBand = bandModel;
colCategory.OwnerBand = bandModel;
colPrice.OwnerBand = bandPrice;
colHP.OwnerBand = bandPerformanceAttributes;
colLiter.OwnerBand = bandPerformanceAttributes;
colCyl.OwnerBand = bandPerformanceAttributes;
colDescription.OwnerBand = bandNotes;
colPicture.OwnerBand = bandNotes;
}

运行应用程序,单击按钮,可以看到列现在在相应的bands下可见。

DevExpress WinForms中文使用教程图集

切换到高级带状网格视图

返回代码并修改处理程序,使其创建高级带状网格视图替代标准带状网格视图,只需为视图使用一个不同的类,其余的代码将继续工作。

C#

private void btnCreateBandedLayout_ItemClick(object sender, ItemClickEventArgs e) {
// Switch to the Advanced Banded Grid View.
AdvBandedGridView view = new AdvBandedGridView();
view.OptionsBehavior.AutoPopulateColumns = false;
gridControl1.MainView = view;
// ...
}

运行应用程序,布局和以前一样,只是列的自动宽度功能现在被禁用了。

将列排列成多行

关闭应用程序并将列标题排列到多行中,要在父bands内的其他列下显示Category和Liter列,请将它们的 BandedGridColumn.RowIndex 属性设置为1。

C#

private void btnCreateBandedLayout_ItemClick(object sender, ItemClickEventArgs e) {
// ...
// Set the vertical position of column headers.
colCategory.RowIndex = 1;
colLiter.RowIndex = 1;
}

再次运行应用程序,可以看到更改,但是现在在某些列标题下出现了空格。

DevExpress WinForms中文使用教程图集

自动拉伸列标题

要自动修改列标题的高度来填充空白空间,请启用它们的BandedGridColumn.AutoFillDown选项。

C#

private void btnCreateBandedLayout_ItemClick(object sender, ItemCl
// ...
// Stretch columns to fit empty spaces below them.
colPrice.AutoFillDown = true;
colDescription.AutoFillDown = true;
colPicture.AutoFillDown = true;
}

运行应用程序并再次单击Create Banded Layout按钮来查看最终结果。

DevExpress WinForms中文使用教程图集

完整代码

C#

private void btnCreateBandedLayout_ItemClick(object sender, ItemClickEventArgs e) {
// Switch to the Advanced Banded Grid View.
AdvBandedGridView view = new AdvBandedGridView();
view.OptionsBehavior.AutoPopulateColumns = false;
gridControl1.MainView = view;// Create top-level bands.
GridBand bandMain = new GridBand() { Name = "bandMain", Caption = "Main" };
GridBand bandPerformanceAttributes = new GridBand() { Name = "bandPerformance", Caption = "Performance Attributes" };
GridBand bandNotes = new GridBand() { Name = "bandNotes", Caption = "Notes" };
view.Bands.AddRange(new GridBand[] { bandMain, bandPerformanceAttributes, bandNotes });// Create nested bands.
GridBand bandModel = new GridBand { Name = "bandModel", Caption = "Model" };
GridBand bandPrice = new GridBand { Name = "bandPrice", Caption = "Price" };
bandMain.Children.AddRange(new GridBand[] { bandModel, bandPrice });// Create banded grid columns and make them visible.
BandedGridColumn colTrademark = new BandedGridColumn() { Name = "colTrademark", FieldName = "Trademark", Visible = true };
BandedGridColumn colModel = new BandedGridColumn() { Name = "colModel", FieldName = "Model", Visible = true };
BandedGridColumn colCategory = new BandedGridColumn() { Name = "colCategory", FieldName = "Category", Visible = true };
BandedGridColumn colPrice = new BandedGridColumn() { Name = "colPrice", FieldName = "Price", Visible = true };
BandedGridColumn colHP = new BandedGridColumn() { Name = "colHP", FieldName = "HP", Visible = true };
BandedGridColumn colLiter = new BandedGridColumn() { Name = "colLiter", FieldName = "Liter", Visible = true };
BandedGridColumn colCyl = new BandedGridColumn() { Name = "colCyl", FieldName = "Cyl", Visible = true };
BandedGridColumn colDescription = new BandedGridColumn() { Name = "colDescription", FieldName = "Description", Visible = true };
BandedGridColumn colPicture = new BandedGridColumn() { Name = "colPicture", FieldName = "Picture", Visible = true };
view.Columns.AddRange(new BandedGridColumn[] { colTrademark, colModel, colCategory, colPrice, colHP, colLiter, colCyl, colDescription, colPicture });// Format the Price column values as currency.
colPrice.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
colPrice.DisplayFormat.FormatString = "c2";// Assign columns to bands.
colTrademark.OwnerBand = bandModel;
colModel.OwnerBand = bandModel;
colCategory.OwnerBand = bandModel;
colPrice.OwnerBand = bandPrice;
colHP.OwnerBand = bandPerformanceAttributes;
colLiter.OwnerBand = bandPerformanceAttributes;
colCyl.OwnerBand = bandPerformanceAttributes;
colDescription.OwnerBand = bandNotes;
colPicture.OwnerBand = bandNotes;// Set the vertical position of column headers.
colCategory.RowIndex = 1;
colLiter.RowIndex = 1;// Stretch columns to fit empty spaces below them.
colPrice.AutoFillDown = true;
colDescription.AutoFillDown = true;
colPicture.AutoFillDown = true;
}

http://www.xdnf.cn/news/488287.html

相关文章:

  • 解决LeetCode 47. 全排列 II 问题的正确姿势:深入分析剪枝与状态跟踪
  • 联合查询
  • ⭐️⭐️⭐️【模拟题及答案】:大模型Clouder认证:基于百炼平台构建智能体应用 ⭐️⭐️⭐️
  • CVPR2025 | 首个多光谱无人机单目标跟踪大规模数据集与统一框架, 数据可直接下载
  • 前端面经 8 JS中的this 手写call apply bind方法
  • 将嵌入映射到 Elasticsearch 字段类型:semantic_text、dense_vector、sparse_vector
  • 火山引擎AI大模型
  • vue-router 中传递参数中的问题
  • 【基础】Windows开发设置入门3:在 Windows 11 上设置开发驱动器,提升性能速度
  • 适合使用分区表的典型业务场景
  • 用Python绘制动态樱花树(附完整源码解析)
  • React组件(一):生命周期
  • Linux下软件安装
  • C++ asio网络编程(7)增加发送队列实现全双工通信
  • Maven Deploy的依赖与引用方的依赖不同
  • 信奥赛-刷题笔记-队列篇-T4-P7912小熊的果篮
  • MySQL 数据库优化:InnoDB 存储引擎深度解析:架构、调优与最佳实践
  • 记录一个为打印高清而做投喂图像增强的例子
  • docker compose 启动指定的 service
  • MongoTemplate 基础使用帮助手册
  • 12条热门照片提示
  • XS9922C芯片:多能一体的视频处理强者,可p2p替代TP9930和TP9932,开启智能视觉新征程
  • Flask框架深度解析:蓝图、上下文机制与Jinja2模板引擎实战
  • ssh 配置了.ssh/authorized_keys 依旧需要密码的问题
  • 如何同时管理不同平台的多个账号?
  • 【第七节】ESP32-S3 霍尔传感器应用实战:磁场检测与蜂鸣器控制
  • 小学数学题批量生成及检查工具
  • PT2062单触控单输出LED调光IC
  • python报错:应为类型Union[str,int],但实际为None问题原因及解决方案
  • HGDB索引膨胀的检查与处理思路