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 void CreateDisableTabPage(bool exp, DevExpress.XtraGrid.Tab.ViewTab tabControl, GridDetailInfo detail) { DisableViewTabPage page = new DisableViewTabPage(tabControl); page.Text = detail.Caption.Trim(); page.Tag = detail.RelationIndex; page.DetailInfo = detail; AddTabPage(exp, tabControl, page); }
protected override DevExpress.XtraGrid.Views.Grid.GridDetailInfo CalcTabControlHeaderHitInfo(System.Drawing.Point pt) { gridDetailInfo = base.CalcTabControlHeaderHitInfo(pt); return(gridDetailInfo); }