DevExpress WinForms拥有180+组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!
本文将为大家介绍如何使用DevExpress WinForms Data Grid组件实现列的可见性。
获取DevExpress WinForms v24.2正式版下载
DevExpress技术交流群11:749942875 欢迎一起进群讨论
默认操作
DevExpress Grid控件支持Microsoft Outlook样式的列选择器窗口,该窗口可以在列标题上下文菜单中调用。
您可以将列标题拖到该窗口上,以便在视图中隐藏列。
将其拖回以使列再次可见。
注意,当交叉光标出现时,您还可以在列标题面板下方放置一个列标题。这也将隐藏列,其标题将出现在自定义窗口中。
在Visual Studio中,您在设计时就可以使用相同的特性。您可以使用拖放或从上下文菜单中选择“Remove This Column”项,就像在运行时一样,可以把header拖回View。
指定列可见性
如果需要在代码中更改列的可见性,最简单的方法是使用它的GridColumn.Visible属性。注意,将其设置为false也会将VisibleIndex属性值更改为-1。
切换回GridColumn.Visible,看看GridColumn.VisibleIndex是如何恢复到之前的值的。
限制最终用户的能力
运行应用程序并调用Column Chooser对话框,这里显示了一个列标题,因此可以将其拖回View。
如果您不希望最终用户这样做,还可以在Column Chooser窗口中隐藏标题,选择所需的列并禁用其OptionsColumn.ShowInCustomizationForm选项。
现在再次打开列选择器,看到标题不再存在。
现在通过向下拖动来隐藏列,默认情况下,此功能是打开的,但您可以使用视图的GridOptionsCustomization.AllowQuickHideColumns选项禁用它。在这种情况下,十字光标永远不会出现,最终用户只能通过将列拖到Column Chooser表单来隐藏列。
您还可以禁用列拖放,如前面教程中所述(请参阅GridOptionsCustomization.AllowColumnMoving)。在这种情况下,Column Chooser对话框不可用,但是您仍然可以使用上下文菜单隐藏列。
响应列可见性变化
由于隐藏列实际上是将其位置更改为-1,因此用于响应可见性更改的事件是视图的ColumnView.ColumnPositionChanged,本教程通过一个简单的示例说明该事件的用法。处理程序将计算视图中当前可见的所有列的总宽度,请注意,视图为您提供了ColumnView.VisibleColumns属性,以简化此操作。然后,如果总列宽度小于控件的宽度,则启用视图的自动列宽度特性。
C#
using DevExpress.XtraGrid.Views.Grid; //... private void gridView1_ColumnPositionChanged(object sender, EventArgs e) { GridView view = sender as GridView; if(view == null) return; int totalWidth = view.VisibleColumns.Sum(column => column.Width); view.OptionsView.ColumnAutoWidth = totalWidth < gridControl.Width; }
运行应用程序,默认情况下水平滚动是启用的,现在隐藏一些列,一旦不再需要水平滚动,就启用自动列宽模式,将列带回到View中,再次看到水平滚动条。
带状视图中的列可见性
值得注意的是,在带状视图和高级带状视图中也有类似的可见性定制功能。您可以拖动列或带标头,直到交叉光标出现,或者直接拖到Column Chooser对话框上,然后以同样的方式将它们拖回“视图”中。
标签:Column,DevExpress,可见,WinForms,Grid,视图,隐藏 From: https://www.cnblogs.com/AABBbaby/p/18649539