Пример #1
0
 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);
        }
Пример #3
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();
                            }
                        }
                    }
                }
            }
        }
Пример #4
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 static void AddTabPage(bool exp, DevExpress.XtraGrid.Tab.ViewTab tabControl, ViewTabPage page)
 {
     tabControl.Pages.Add(page);
     if (exp)
     {
         tabControl.SelectedPage = page;
     }
 }