DevExpress WinForms拥有180+组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!
本教程涵盖了受Microsoft Excel启发的拆分演示功能,它允许您将网格拆分为两个独立的可滚动窗格。您可以垂直分割网格,从而在一个窗格中编辑最后一个网格行,同时在另一个窗格中查看第一个网格行。当视图水平分割时,同样适用于列,这可以帮助最终用户浏览和分析包含许多列或行的数据。
获取DevExpress WinForms v25.2正式版下载
DevExpress技术交流群11:749942875 欢迎一起进群讨论
开始
从一个示例应用程序开始,它的数据网格连接到一个示例Microsoft AdventureWorks数据库——一个包含许多记录和数据字段的大型数据库,这样的布局可以从使用分屏视图表示中获益。

创建网格分割容器
启用此功能的一种方法是将GridSplitContainer控件替代GridControl拖放到表单上,这将在分割容器中创建一个网格控件,并提供所有必需的设置。
由于表单中已经有一个网格,所以调用网格控件的智能标记并单击Add Split Container链接。

在设计时您不会注意到这些变化,但是网格现在被放置在一个分割容器中,您可以将其拆分为两个区域。在继续之前跳转到网格视图的属性GridView.OptionsMenu部分,确保GridOptionsMenu.ShowSplitItem属性被设置为true。
在运行时激活分割表示
运行应用程序,右键单击Group by Box,然后从上下文菜单中选择Split。

默认情况下,分割器垂直划分网格。您可以单独垂直滚动每个窗格,水平滚动影响两个窗格。

启用水平分割显示
返回到设计时,选择GridSplitContainer并将其GridSplitContainer.Horizontal属性更改为true。

现在Split菜单项将网格水平划分为两个窗格,您可以单独水平滚动每个窗格,而垂直滚动是同步的。

分割表示API
您可以在应用程序启动时启用分割表示,或实现一个自定义UI元素来打开或关闭此模式,这可以是RibbonControl中的一个项。要切换分割视图模式,调用GridSplitContainer的GridSplitContainer.ShowSplitView和GridSplitContainer.HideSplitView 方法。确保在Form的构造函数中调用GridSplitContainer.ShowSplitView,以便在应用程序启动时自动启用拆分容器。
您还可以做的一件事是滚动第二个窗格,这样最终用户就不会在两个部分中看到相同的数据。您需要使用分割容器的GridSplitContainer.SplitChildGrid属性来访问辅助网格,然后获取网格的GridControl.MainView并设置其GridView.TopRowIndex属性。
C#
您还可以做的一件事是滚动第二个窗格,这样最终用户就不会在两个部分中看到相同的数据。您需要使用分割容器的GridSplitContainerSplitChildGrid属性来访问辅助网格,using DevExpress.XtraBars;
// ...
public Form1() {
// ...
gridSplitContainer1.ShowSplitView();
((GridView)gridSplitContainer1.SplitChildGrid.MainView).TopRowIndex = gridView1.RowCount - 11;
}
private void barToggleSwitchItem1_CheckedChanged(object sender, ItemClickEventArgs e) {
BarToggleSwitchItem item = sender as BarToggleSwitchItem;
if (item == null) return;
if (item.Checked == false) gridSplitContainer1.HideSplitView();
else gridSplitContainer1.ShowSplitView();
}
运行应用程序,现在可以看到在应用程序启动时,主网格像以前一样显示第一行数据,但是次网格现在向下滚动到底部。
同步设置
注意默认情况下,您可以自由地关注每个网格区域中的不同数据行,还可以通过设置GridSplitContainer.SynchronizeFocusedRow属性为true来改变它。

聚焦在一个区域的行会导致另一个区域向上或向下滚动到这一行,并聚焦它。
您还可以注意到,水平滚动会同时影响两个窗格。要改变这一点,将GridSplitContainer.SynchronizeScrolling属性设置为false,现在您可以使用两个窗格各自的滚动条独立地滚动它们。

最后,在一个网格窗格中应用的任何数据整形操作都会反映在另一个窗格中。例如,您可以根据列对数据进行分组,相同的分组将应用于另一个窗格,组行展开和折叠操作也是同步的。

这个操作由GridSplitContainer.SynchronizeViews和GridSplitContainer.SynchronizeExpandCollapse属性控制的,将GridSplitContainer.SynchronizeViews属性设置为false。现在如果根据一列对数据进行分组,那么在另一个窗格中不会发生任何变化。

更多DevExpress线上公开课、中文教程资讯请上中文网获取
关于慧都科技
慧都是⼀家⾏业数字化解决⽅案公司,专注于软件、⽯油与⼯业领域,以深⼊的业务理解和⾏业经验,帮助企业实现智能化转型与持续竞争优势。
慧都科技是DevExpress的中国区的合作伙伴,DevExpress作为用户界面领域的优秀产品,帮助企业高效构建权限管理、数据可视化(如网格/图表/仪表盘)、跨平台系统(WinForms/ASP.NET/.NET MAUI)及行业定制解决方案,加速开发并强化交互体验。

欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明:文章转载自:DevExpress控件中文网 [https://www.devexpresscn.com/]
本文地址:https://www.devexpresscn.com/post/5615.html
相关产品: DevExpress WinForms Subscription, DevExpress Universal Subscription,
联系电话:023-68661681



返回