2024年终活动

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

DevExpress WinForms中文教程:Grid View - 如何实现自动调整宽度模式?

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

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

本文主要介绍如何使用DevExpress WinForms Data Grid组件实现自动调整宽度。

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

DevExpress技术交流群11:749942875      欢迎一起进群讨论

列宽模式基础

调整列或容器控件的大小,来查看网格是否自动调整列,使它们占据整个视图,并且不需要水平滚动条。

DevExpress WinForms中文教程图集

另一种可用的模式是在不发生自动调整的情况下,根据需要显示水平滚动条。

DevExpress WinForms中文教程图集

本教程将介绍这两种模式。

在列宽度模式之间切换

默认操作时自动调整列宽度,要禁用它请跳转到View(视图)设置并在GridView.OptionsView目录禁用GridOptionsView.ColumnAutoWidth选项,这将使水平滚动条在必要时可用。

DevExpress WinForms中文教程图集

如果将该选项切换回其默认状态,则可以看到在更改控件宽度时,所有列的大小是如何按比例调整的。

强制列具有固定的宽度

如果您希望某个列在发生这些调整时保持其宽度,请启用该列的OptionsColumn.FixedWidth选项。

DevExpress WinForms中文教程图集
响应列宽度变化

正如上一篇教程中提到的,您可以使用View的GridView.ColumnWidthChanged事件响应列宽度的更改,本文中的处理程序根据当前宽度调整Unit Price列的格式。

C#

private void gridView1_ColumnWidthChanged(object sender, DevExpress.XtraGrid.Views.Base.ColumnEventArgs e) {
if (e.Column != colUnitPrice) return;
colUnitPrice.DisplayFormat.FormatString = (colUnitPrice.Width > 50) ? "c2" : "c0";
}

如果运行这个应用程序,请注意当您调整列的大小时,这段代码是如何隐藏价格的小数的。

DevExpress WinForms中文教程图集

但是如果您调整容器的大小,列会缩小,但不会应用正确的格式。要解决这个问题,还需要处理网格控件的SizeChanged事件。由于列的大小调整是由于自动宽度模式,列的GridColumn.Width属性实际上并没有改变,您需要在处理程序中使用GridColumn.VisibleWidth属性,还要添加代码来显示带有两个属性值的AlertControl,以便对它们进行比较。

C#

private void gridControl_SizeChanged(object sender, EventArgs e) {
colUnitPrice.DisplayFormat.FormatString = (colUnitPrice.VisibleWidth > 50) ? "c2" : "c0";
alertControl1.Show(this, "Column Width Update",
string.Format("Width is {0}, \nVisibleWidth is {1}", colUnitPrice.Width, colUnitPrice.VisibleWidth));
}

运行应用程序并调整容器大小,GridColumn.Width属性保持不变,而GridColumn.VisibleWidth反映了实际的屏幕大小,从而允许格式化代码工作。

DevExpress WinForms中文教程图集

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


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

年终活动火热开启中
本站文章除注明转载外,均为本站原创或翻译
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明:文章转载自:DevExpress控件中文网 [https://www.devexpresscn.com/]
本文地址:https://www.devexpresscn.com/post/4979.html

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

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