/// <summary> Construct with name and location </summary>
        public GLScrollPanelScrollBar(string name, Rectangle location) : base(name, location)
        {
            BorderColorNI          = DefaultVerticalScrollPanelBorderColor;
            BackColorGradientAltNI = BackColorNI = DefaultVerticalScrollPanelBackColor;

            scrollpanel           = new GLScrollPanel(name + "_VSP");
            scrollpanel.Dock      = DockingType.Fill;
            scrollpanel.BackColor = BackColor;
            base.Add(scrollpanel);  // base because we don't want to use the overrides

            vertscrollbar       = new GLVerticalScrollBar(name + "_SVert");
            vertscrollbar.Dock  = DockingType.Right;
            vertscrollbar.Width = ScrollBarWidth;
            base.Add(vertscrollbar);     // last added always goes to top of z-order
            vertscrollbar.Scroll += VScrolled;

            horzscrollbar        = new GLHorizontalScrollBar(name + "_SHorz");
            horzscrollbar.Dock   = DockingType.Bottom;
            horzscrollbar.Height = ScrollBarWidth;
            base.Add(horzscrollbar);     // last added always goes to top of z-order
            horzscrollbar.Scroll += HScrolled;

            horzscrollbar.Theme = vertscrollbar.Theme;                  // set theme for horz scroll bar to same as vertical scroll bar
            vertscrollbar.Theme.Parents.Add(horzscrollbar);             // and add it to Parents so when it gets changed, we invalidate both
        }
Exemplo n.º 2
0
        /// <summary> Construct with name and bounds</summary>
        public GLDataGridView(string name, Rectangle location) : base(name, location)
        {
            int sbwidth = 16;

            vertscroll         = new GLVerticalScrollBar(name + "_VSB", new Rectangle(0, 0, sbwidth, 10), 0, 100);
            vertscroll.Dock    = DockingType.Right;
            vertscroll.Scroll += (sb, se) => { contentpanel.FirstDisplayIndex = se.NewValue; };
            horzscroll         = new GLHorizontalScrollBar(name + "_HSB", new Rectangle(0, 0, 10, sbwidth), 0, 100);
            horzscroll.Dock    = DockingType.Bottom;
            horzscroll.Scroll += (sb, se) => { colheaderpanel.HorzScroll = contentpanel.HorzScroll = se.NewValue; };
            horzscroll.Theme   = vertscroll.Theme;      // use one theme between them
            vertscroll.Theme.Parents.Add(horzscroll);

            rowheaderpanel              = new GLDataGridViewRowHeaderPanel(name + "_RHP", location);
            rowheaderpanel.Dock         = DockingType.Left;
            contentpanel                = new GLDataGridViewContentPanel(name + "_CP", rowheaderpanel, location);
            contentpanel.Dock           = DockingType.Fill;
            rowheaderpanel.contentpanel = contentpanel;
            colheaderpanel              = new GLDataGridViewColumnHeaderPanel(name + "_CHP", location);
            colheaderpanel.Dock         = DockingType.Top;
            topleftpanel                = new GLDataGridViewTopLeftHeaderPanel(name + "_TLP", location);
            topleftpanel.Dock           = DockingType.LeftTop;
            Add(contentpanel);
            Add(colheaderpanel);
            Add(rowheaderpanel);
            Add(vertscroll);
            Add(horzscroll);
            Add(topleftpanel);

            colheaderstyle.Changed   += (e1) => { colheaderpanel.Invalidate(); };
            rowheaderstyle.Changed   += (e1) => { ContentInvalidateLayout(); };
            defaultcellstyle.Changed += (e1) => { ContentInvalidateLayout(); };

            BorderColorNI                   = DefaultDGVBorderColor;
            BackColorGradientAltNI          = BackColorNI = DefaultDGVBackColor;
            cellbordercolor                 = DefaultDGVCellBorderColor;
            upperleftbackcolor              = colheaderstyle.BackColor = rowheaderstyle.BackColor = DefaultDGVColumnRowBackColor;
            colheaderstyle.ForeColor        = rowheaderstyle.ForeColor = DefaultDGVColumnRowForeColor;
            defaultcellstyle.BackColor      = DefaultDGVCellBackColor;
            defaultcellstyle.ForeColor      = DefaultDGVCellForeColor;
            colheaderstyle.SelectedColor    = rowheaderstyle.SelectedColor = defaultcellstyle.SelectedColor = DefaultDGVCellSelectedColor;
            colheaderstyle.HighlightColor   = rowheaderstyle.HighlightColor = defaultcellstyle.HighlightColor = DefaultDGVCellHighlightColor;
            colheaderstyle.ContentAlignment = rowheaderstyle.ContentAlignment = defaultcellstyle.ContentAlignment = ContentAlignment.MiddleCenter;
            colheaderstyle.TextFormat       = rowheaderstyle.TextFormat = defaultcellstyle.TextFormat = 0;
            colheaderstyle.Font             = rowheaderstyle.Font = defaultcellstyle.Font = Font;
            colheaderstyle.Padding          = rowheaderstyle.Padding = defaultcellstyle.Padding = new PaddingType(0);

            defaultaltrowcellstyle.Parent = defaultcellstyle;       // all null, uses cell style until overridden

            colheaderpanel.MouseClickColumnHeader += (col, e) =>
            {
                //System.Diagnostics.Debug.WriteLine($"Click on {col} {SortColumn} {SortAscending}");
                if (AllowUserToSortColumns)
                {
                    Sort(col, !SortAscending);
                }
                else
                {
                    MouseClickOnGrid?.Invoke(-1, col, e);
                }
            };

            topleftpanel.MouseClickColumnHeader += (e) =>
            {
                //System.Diagnostics.Debug.WriteLine($"Click on top left");
                MouseClickOnGrid?.Invoke(-2, -2, e);
            };

            rowheaderpanel.MouseClickRowHeader += (row, e) =>
            {
                //System.Diagnostics.Debug.WriteLine($"Click on row header {row}");
                MouseClickOnGrid?.Invoke(row, -1, e);
            };
            contentpanel.MouseClickOnGrid += (row, col, e) =>
            {
                //System.Diagnostics.Debug.WriteLine($"Click on grid {row} {col}");
                MouseClickOnGrid?.Invoke(row, col, e);
            };
        }