Specail effect of 2 xtragrids

本文介绍了一个使用 DevExpress XtraGrid 控件的示例程序,该程序实现了两个网格视图之间的数据同步,包括列宽调整、滚动位置及排序状态的同步。

using System; using System.Collections.Generic; using System.Windows.Forms; using DevExpress.XtraGrid.Columns; namespace Xtragrid { public partial class UserControl1 : UserControl { public UserControl1() { InitializeComponent(); } private void UserControl1_Load(object sender, EventArgs e) { List<Student> listA = new List<Student>(); listA.Add(new Student() { ID = 1, Name = "aaa", Sex = "Male", BornDate = DateTime.Now, CellPhone = "11113214", Address = "sdksdk skdaksd ksdksdk ksdksdk"}); listA.Add(new Student() { ID = 1, Name = "aaa", Sex = "Male", BornDate = DateTime.Now, CellPhone = "25863214", Address = "sdksdk skdaksd ksdksdk ksdksdk" }); listA.Add(new Student() { ID = 1, Name = "aaa", Sex = "Female", BornDate = DateTime.Now, CellPhone = "25863214", Address = "sdksdk skdaksd ksdksdk ksdksdk" }); listA.Add(new Student() { ID = 1, Name = "aaa", Sex = "Male", BornDate = DateTime.Now, CellPhone = "25863214", Address = "sdksdk skdaksd ksdksdk ksdksdk" }); listA.Add(new Student() { ID = 1, Name = "xyz", Sex = "Male", BornDate = DateTime.Now, CellPhone = "11113214", Address = "sdksdk skdaksd ksdksdk ksdksdk" }); listA.Add(new Student() { ID = 1, Name = "aaa", Sex = "Female", BornDate = DateTime.Now, CellPhone = "25863214", Address = "sdksdk skdaksd ksdksdk ksdksdk" }); listA.Add(new Student() { ID = 1, Name = "aaa", Sex = "Male", BornDate = DateTime.Now, CellPhone = "25863214", Address = "sdksdk skdaksd ksdksdk ksdksdk" }); listA.Add(new Student() { ID = 1, Name = "aaa", Sex = "Male", BornDate = DateTime.Now, CellPhone = "25863214", Address = "sdksdk skdaksd ksdksdk ksdksdk" }); listA.Add(new Student() { ID = 1, Name = "aaa", Sex = "Male", BornDate = DateTime.Now, CellPhone = "11113214", Address = "sdksdk skdaksd ksdksdk ksdksdk" }); List<Student> listB = new List<Student>(); listB.Add(new Student() { ID = 1, Name = "bbb", Sex = "Female", BornDate = DateTime.Now, CellPhone = "25863214", Address = "sdksdk skdaksd ksdksdk ksdksdk" }); listB.Add(new Student() { ID = 1, Name = "bbb", Sex = "Female", BornDate = DateTime.Now, CellPhone = "25863214", Address = "sdksdk skdaksd ksdksdk ksdksdk" }); listB.Add(new Student() { ID = 1, Name = "bbb", Sex = "Female", BornDate = DateTime.Now, CellPhone = "11863214", Address = "sdksdk skdaksd ksdksdk ksdksdk" }); listB.Add(new Student() { ID = 1, Name = "ccc", Sex = "Female", BornDate = DateTime.Now, CellPhone = "25863214", Address = "sdksdk skdaksd ksdksdk ksdksdk" }); listB.Add(new Student() { ID = 1, Name = "bbb", Sex = "Female", BornDate = DateTime.Now, CellPhone = "25863214", Address = "sdksdk skdaksd ksdksdk ksdksdk" }); listB.Add(new Student() { ID = 1, Name = "bbb", Sex = "Male", BornDate = DateTime.Now, CellPhone = "25863214", Address = "sdksdk skdaksd ksdksdk ksdksdk" }); listB.Add(new Student() { ID = 1, Name = "aaa", Sex = "Male", BornDate = DateTime.Now, CellPhone = "25863214", Address = "sdksdk skdaksd ksdksdk ksdksdk" }); listB.Add(new Student() { ID = 1, Name = "bbb", Sex = "Female", BornDate = DateTime.Now, CellPhone = "25863214", Address = "sdksdk skdaksd ksdksdk ksdksdk" }); listB.Add(new Student() { ID = 1, Name = "bbb", Sex = "Female", BornDate = DateTime.Now, CellPhone = "25863214", Address = "sdksdk skdaksd ksdksdk ksdksdk" }); gridControl1.DataSource = listA; gridControl2.DataSource = listB; } private void gridView1_ColumnWidthChanged(object sender, DevExpress.XtraGrid.Views.Base.ColumnEventArgs e) { gridView2.Columns[e.Column.FieldName].Width = e.Column.Width; } private void gridView2_LeftCoordChanged(object sender, EventArgs e) { gridView1.LeftCoord = gridView2.LeftCoord; } private void gridView1_EndSorting(object sender, EventArgs e) { GridColumnSortInfo[] sortInfo = new GridColumnSortInfo[gridView1.SortInfo.Count]; for (int i = 0; i < gridView1.SortInfo.Count; i++) { GridColumnSortInfo columnSort = gridView1.SortInfo[i]; sortInfo[i] = new GridColumnSortInfo(gridView2.Columns[columnSort.Column.FieldName], columnSort.SortOrder); } gridView2.SortInfo.ClearAndAddRange(sortInfo); } private void gridView1_GridMenuItemClick(object sender, DevExpress.XtraGrid.Views.Grid.GridMenuItemClickEventArgs e) { if (e.MenuType == DevExpress.XtraGrid.Views.Grid.GridMenuType.Column && e.DXMenuItem.Tag.ToString() == "MenuColumnClearSorting") { if (gridView2.SortInfo.Count > 0) { GridColumnSortInfo[] sortInfo = new GridColumnSortInfo[gridView2.SortInfo.Count - 1]; for (int i = 0; i < gridView2.SortInfo.Count; i++) { GridColumnSortInfo columnSort = gridView2.SortInfo[i]; if (columnSort.Column.FieldName != e.Column.FieldName) sortInfo[i] = new GridColumnSortInfo(gridView2.Columns[columnSort.Column.FieldName], columnSort.SortOrder); } gridView2.SortInfo.ClearAndAddRange(sortInfo); } } } } }

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值