protected override void PopulateTabMasterData(ViewTab tabControl, int rowHandle) { base.PopulateTabMasterData(tabControl, rowHandle); if (GridControl is MyGridControl) { MyGridControl gridControl = GridControl as MyGridControl; if (gridControl.tabOrderList != null) { if (((MyGridControl)this.GridControl).tabOrderList != null) { for (int i = 0; i < ((MyGridControl)this.GridControl).tabOrderList.Count; i++) { if (tabControl.Pages[i].DetailInfo.RelationIndex != ((MyGridControl)this.GridControl).tabOrderList[i]) { ViewTabPage page1 = tabControl.Pages[i]; ViewTabPage page2 = tabControl.Pages[((MyGridControl)this.GridControl).tabOrderList[i]]; ((IList)tabControl.Pages).RemoveAt(i); ((IList)tabControl.Pages).Insert(i, page2); ((IList)tabControl.Pages).RemoveAt(((MyGridControl)this.GridControl).tabOrderList[i]); ((IList)tabControl.Pages).Insert(((MyGridControl)this.GridControl).tabOrderList[i], page1); } } } } } }
private void CreateEnableTabPage(bool exp, DevExpress.XtraGrid.Tab.ViewTab tabControl, GridDetailInfo detail) { ViewTabPage page = new ViewTabPage(tabControl); page.Text = detail.Caption.Trim(); page.Tag = detail.RelationIndex; page.DetailInfo = detail; AddTabPage(exp, tabControl, page); }
protected override void OnMouseMove(MouseEventArgs ev) { ViewTab tabControl = null; base.OnMouseMove(ev); GridView view = (GridView)this.GetViewAt((ev.Location)); MyGridViewInfo gridViewInfo = view.GetViewInfo() as MyGridViewInfo; if (gridViewInfo == null) { return; } GridDetailInfo gridnewDetailInfo = gridViewInfo.gridDetailInfo as GridDetailInfo; if (gridnewDetailInfo != null) { if (ev.Button == MouseButtons.Left && gridnewDetailInfo != null) { if (gridnewDetailInfo != null) { PropertyInfo pi = typeof(BaseView).GetProperty("TabControl", BindingFlags.NonPublic | BindingFlags.Instance); tabControl = pi.GetValue(view, null) as ViewTab; ViewTabPage pg = tabControl.Pages.OfType <ViewTabPage>().First(p => p.DetailInfo == gridnewDetailInfo); int newIndex = ((IList)tabControl.Pages).IndexOf(pg); if (newIndex != oldIndex && oldIndex != -1) { if (tabControl.Pages.Count > 1) { ViewTabPage page1 = tabControl.Pages[oldIndex]; ViewTabPage page2 = tabControl.Pages[newIndex]; GridDetailInfo info = page1.DetailInfo; ((IList)tabControl.Pages).RemoveAt(oldIndex); ((IList)tabControl.Pages).Insert(oldIndex, page2); ((IList)tabControl.Pages).RemoveAt(newIndex); ((IList)tabControl.Pages).Insert(newIndex, page1); page1.DetailInfo = page2.DetailInfo; page2.DetailInfo = info; MyGridView myGridView = view as MyGridView; tabOrderList = new List <int>(); foreach (ViewTabPage page in tabControl.Pages) { tabOrderList.Add((int)page.Tag); } oldIndex = newIndex; tabControl.LayoutChanged(); } } } } } }
protected override void OnMouseDown(MouseEventArgs ev) { GridHitInfo hitInfo = ((GridView)this.MainView).CalcHitInfo(ev.Location); Console.WriteLine(hitInfo.HitTest); GridView view = (GridView)this.GetViewAt(ev.Location); downHitInfo = view.CalcHitInfo(ev.Location); GridDetailInfo gridDetailInfo = ((MyGridViewInfo)view.GetViewInfo()).gridDetailInfo; if (gridDetailInfo != null) { PropertyInfo pi = typeof(BaseView).GetProperty("TabControl", BindingFlags.NonPublic | BindingFlags.Instance); ViewTab tabControl = pi.GetValue(view, null) as ViewTab; ViewTabPage page = tabControl.Pages.OfType <ViewTabPage>().First(p => p.DetailInfo == gridDetailInfo); oldIndex = ((IList)tabControl.Pages).IndexOf(page); } base.OnMouseDown(ev); }
private static void AddTabPage(bool exp, DevExpress.XtraGrid.Tab.ViewTab tabControl, ViewTabPage page) { tabControl.Pages.Add(page); if (exp) { tabControl.SelectedPage = page; } }