public FixedRowsExtension(GridSplitContainerDescendant split) { gridSplitContainer1 = split; gridControl1 = gridSplitContainer1.Grid as GridControl; gridControl1.ForceInitialize(); gridViewPanel1 = gridControl1.MainView as GridView; gridViewPanel1.OptionsMenu.ShowSplitItem = false; gridViewPanel1.OptionsCustomization.AllowGroup = false; var scrollBar = gridControl1.Controls.OfType <Control>().FirstOrDefault(x => x is VCrkScrollBar); if (scrollBar != null) { gridControl1.Controls.Remove(scrollBar); } //add menuItems fixedRowAddMenu = new ContextMenu(); MenuItem add = new MenuItem(); add.Index = 0; add.Text = "Add to fixed rows"; add.Click += add_Click; fixedRowAddMenu.MenuItems.Add(add); fixedRowRemoveMenu = new ContextMenu(); MenuItem remove = new MenuItem(); remove.Index = 0; remove.Text = "Remove from fixed rows"; remove.Click += remove_Click; fixedRowRemoveMenu.MenuItems.Add(remove); //show split gridSplitContainer1.ShowSplitView(); gridSplitContainer1.FixedPanel = SplitFixedPanel.Panel1; //raise events gridViewPanel1.CustomRowFilter += gridViewPanel1_CustomRowFilter; gridViewPanel1.PopupMenuShowing += gridViewPanel1_PopupMenuShowing; gridViewPanel2 = gridSplitContainer1.SplitChildGrid.MainView as GridView; gridViewPanel2.CustomRowFilter += gridViewPanel2_CustomRowFilter; gridViewPanel2.PopupMenuShowing += gridViewPanel2_PopupMenuShowing; gridViewPanel1.CalcRowHeight += gridViewPanel2_CalcRowHeight; gridViewPanel2.CalcRowHeight += gridViewPanel2_CalcRowHeight; gridViewPanel1.ShowingEditor += gridViewPanel1_ShowingEditor; gridViewPanel1.Layout += gridViewPanel1_Layout; gridSplitContainer1.Grid.ForceInitialize(); gridViewPanel1.FocusedRowChanged += gridViewPanel1_FocusedRowChanged; gridSplitContainer1.Panel2.SizeChanged += Panel2_SizeChanged; gridViewPanel2.RowCountChanged += gridViewPanel2_RowCountChanged; GridViewInfo viewInfo1 = gridViewPanel1.GetViewInfo() as GridViewInfo; gridSplitContainer1.SplitterPosition = viewInfo1.ViewRects.ColumnPanel.Bottom; GridViewInfo viewInfo2 = gridViewPanel2.GetViewInfo() as GridViewInfo; panel2State = viewInfo2.VScrollBarPresence; }
private void ColumnSynk() { GridViewInfo viewInfo2 = gridViewPanel2.GetViewInfo() as GridViewInfo; if (viewInfo2.VScrollBarPresence != panel2State) { panel2State = viewInfo2.VScrollBarPresence; if (viewInfo2.VScrollBarPresence == ScrollBarPresence.Visible) { gridViewPanel1.VertScrollVisibility = ScrollVisibility.Always; RefreshData(); } else { if (FixedRows.Count != 0 || gridViewPanel1.VertScrollVisibility != ScrollVisibility.Auto) { gridViewPanel1.VertScrollVisibility = ScrollVisibility.Never; } } } }