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); } } } } }