Beispiel #1
0
        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();
                            }
                        }
                    }
                }
            }
        }
Beispiel #2
0
        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);
        }
Beispiel #4
0
 protected override DevExpress.XtraGrid.Views.Grid.GridDetailInfo CalcTabControlHeaderHitInfo(System.Drawing.Point pt)
 {
     gridDetailInfo = base.CalcTabControlHeaderHitInfo(pt);
     return(gridDetailInfo);
 }