Exemple #1
0
        public void RefreshLayout()
        {
            EPoint pntHeaderBottomRight = new EPoint();

            for (int x = 0; x < this.slColumnStyles.Count; x++)
            {
                VersatileDataGridColumnStyle columnStyle = GetColumnStyle(x);
                EPoint pntLeftRight = this.GetColumnLeftRight(columnStyle.ColumnName);

                //rct.Height = this.panelHeaders.Height; //panelSubHeaders
                Control ctrl = this.Controls[x * 2];               //panelSubHeaders
                ctrl.Width = pntLeftRight.Y - pntLeftRight.X;
                ctrl.Left  = pntLeftRight.X;

                //				this.listView1.Columns[x].Width = pntLeftRight.Y-pntLeftRight.X;


                Control splitter = this.Controls[x * 2 + 1];             //panelSubHeaders
                splitter.Left = pntLeftRight.Y;
                //splitter.Height = rct.Height;

                pntHeaderBottomRight.X = pntLeftRight.Y;
                //pntHeaderBottomRight.Y = rct.Bottom;
            }
//			this.listView1.Width = pntHeaderBottomRight.X;
            this.Width = pntHeaderBottomRight.X;

            //panelSubHeaders.Width = pntHeaderBottomRight.X;
            //panelSubHeaders.Height = pntHeaderBottomRight.Y;
        }
Exemple #2
0
        private void splitter_SplitterMoved(object sender, int newLoc)
        {
            CustomSplitter splitter = (CustomSplitter)sender;
            Control        ctrl     = (Control)splitter.Tag;
            VersatileDataGridColumnStyle columnStyle = (VersatileDataGridColumnStyle)ctrl.Tag;

            columnStyle.Width += splitter.DraggedTotal;
        }
Exemple #3
0
        private void headerCtrl_Click(object sender, EventArgs e)
        {
            Control ctrl = (Control)sender;
            VersatileDataGridColumnStyle columnStyle = (VersatileDataGridColumnStyle)ctrl.Tag;

            if (ChangedColumnSorting != null)
            {
                ChangedColumnSorting(this, columnStyle.ColumnName, true);
            }
        }
Exemple #4
0
 public VersatileDataGridColumnStyle GetColumnStyle(int displayOrdinal)
 {
     for (int i = 0; i < slColumnStyles.Count; i++)
     {
         VersatileDataGridColumnStyle style = (VersatileDataGridColumnStyle)slColumnStyles.GetByIndex(i);
         if (style.DisplayOrdinal == displayOrdinal)
         {
             return(GetColumnStyle(style.ColumnName));
         }
     }
     return(null);
 }
Exemple #5
0
        public void SetColumnSpecificStyle(VersatileDataGridColumnStyle colStyle)
        {
            VersatileDataGridColumnStyle style = this.columnHeaders1.GetColumnStyle(colStyle.ColumnName);

            ArrayList aStyles = this.columnHeaders1.ColumnStyles;

            if (style != null)
            {
                aStyles.Remove(style);
            }
            aStyles.Add(colStyle);
            this.columnHeaders1.ColumnStyles = aStyles;
        }
Exemple #6
0
        public void SetupColumns()
        {
//			for (int i = this.Controls.Count-1; i >= 0; i--)
//			{
//				Control ctrl = this.Controls[i];
//				if (ctrl != this.listView1)
//					this.Controls.Remove(ctrl);
//			}
//			this.listView1.Columns.Clear();
//			this.listView1.Visible = false;

            this.Controls.Clear();

            for (int x = 0; x < this.slColumnStyles.Count; x++)
            {
                VersatileDataGridColumnStyle columnStyle = this.GetColumnStyle(x);
                //					TextBox headerCtrl = new TextBox();
                //					headerCtrl.BorderStyle = BorderStyle.None;
                //					headerCtrl.Enabled = false;
                //					headerCtrl.BackColor = Color.White;


                ColumnHeader colHeader = new ColumnHeader();
                colHeader.Text  = columnStyle.ColumnName;
                colHeader.Width = columnStyle.Width;
//				this.listView1.Columns.Add(colHeader);


                System.Windows.Forms.Button headerCtrl = new System.Windows.Forms.Button();
                headerCtrl.Text      = columnStyle.ColumnName;
                headerCtrl.FlatStyle = FlatStyle.Popup;
                headerCtrl.Font      = new Font("Verdana", 6.75f);
                headerCtrl.BackColor = System.Drawing.Color.FromKnownColor(System.Drawing.KnownColor.Control);

                headerCtrl.Tag    = columnStyle;
                headerCtrl.Click += new EventHandler(headerCtrl_Click);
                this.Controls.Add(headerCtrl);                 //this.panelSubHeaders
                //headerCtrl.Visible = false;

                CustomSplitter splitter = new CustomSplitter();
                splitter.Width = this.SplitterWidth;
                splitter.Tag   = headerCtrl;
                //					splitter.SplitterMoving+=new Endogine.Editors.CustomSplitter.SplitterEventHandler(splitter_SplitterMoving);
                splitter.SplitterMoved += new Endogine.Editors.CustomSplitter.SplitterEventHandler(splitter_SplitterMoved);
                this.Controls.Add(splitter);                 //this.panelSubHeaders
            }
            this.RecalcColumnLeftRights();
        }
Exemple #7
0
        public void RecalcColumnLeftRights()
        {
            this.htCachedColumnLeftRights = new Hashtable();

            int nTotalWidth = 0;

            for (int x = 0; x < this.slColumnStyles.Count; x++)
            {
                VersatileDataGridColumnStyle columnStyle = GetColumnStyle(x);

                EPoint pntRange = new EPoint(nTotalWidth, nTotalWidth + columnStyle.Width);
                //EH.Put(col.ColumnName + " " + pntRange.ToString());
                this.htCachedColumnLeftRights.Add(columnStyle.ColumnName, pntRange);

                nTotalWidth += columnStyle.Width + this.SplitterWidth;
            }
        }
Exemple #8
0
        public void AutoAdjustColumns(int nMinWidth, int nMaxWidth, bool bOnlyLookHeaders)
        {
            bNoRecalcing = true;
            this.columnHeaders1.NoRefresh = true;

            DataView dv = this.GetDataView();

            bool bIncludeHeaders = true;

            foreach (DataColumn col in dv.Table.Columns)
            {
                int nFoundMaxWidth = 0;

                int rowStart;
                if (bIncludeHeaders)
                {
                    rowStart = -1;
                }
                else
                {
                    rowStart = 0;
                }
                for (int y = rowStart; y < dv.Count; y++)
                {
                    int nWidth = this.GetWantedWidth(y, col.Ordinal);
                    nFoundMaxWidth = Math.Max(nWidth, nFoundMaxWidth);
                }
                VersatileDataGridColumnStyle style = GetColumnStyle(col.ColumnName);

                style.Width = Math.Max(nMinWidth, Math.Min(nMaxWidth, nFoundMaxWidth));
            }

            bNoRecalcing = false;
            this.columnHeaders1.NoRefresh = false;
            this.columnHeaders1.RecalcColumnLeftRights();

            this.RefreshLayout();
        }
Exemple #9
0
        private void RefreshLayout()
        {
            this.columnHeaders1.RefreshLayout();
            this.columnHeaders1.Height = this.panelHeaders.Height;

            this.panelSubGrid.SuspendLayout();
            //this.columnHeaders1.SuspendLayout();

            DataView dv = this.GetDataView();

            pntCachedBottomRightLoc = new EPoint();
            for (int y = 0; y < dv.Count; y++)
            {
                //DataRowView rowView = dv[y];
                for (int x = 0; x < dv.Table.Columns.Count; x++)
                {
                    DataColumn col = dv.Table.Columns[x];
                    VersatileDataGridColumnStyle columnStyle = this.GetColumnStyle(col.ColumnName);

                    Control   ctrl = this.panelSubGrid.Controls[x + y * dv.Table.Columns.Count];
                    Rectangle rct  = this.GetBoundingRect(y, x);
                    //EH.Put(x.ToString() + ";"+y.ToString()+" " + rct.ToString());
                    ctrl.Location             = rct.Location;
                    ctrl.Size                 = rct.Size;
                    pntCachedBottomRightLoc.X = ctrl.Right;
                    pntCachedBottomRightLoc.Y = ctrl.Bottom;
                }
            }
            this.panelSubGrid.Width  = pntCachedBottomRightLoc.X;
            this.panelSubGrid.Height = pntCachedBottomRightLoc.Y;

            this.panelSubGrid.ResumeLayout();
            //this.panelSubHeaders.ResumeLayout();

            this.UpdateSize();
        }
Exemple #10
0
        public VersatileDataGridColumnStyle GetColumnStyle(string columnName)
        {
//			if (this.slColumnStyles.Count == 0)
//			{
//				ArrayList aStyles = new ArrayList();
//				aStyles.Add(new VersatileDataGridColumnStyle());
//				this.ColumnStyles = aStyles;
//			}

            VersatileDataGridColumnStyle columnStyle = (VersatileDataGridColumnStyle)
                                                       slColumnStyles[columnName];

            //if (false && columnStyle == null)
            //{
            //    ArrayList aStyles = this.ColumnStyles;
            //    VersatileDataGridColumnStyle style = new VersatileDataGridColumnStyle();
            //    style.ColumnName = columnName;
            //    aStyles.Add(style);
            //    this.ColumnStyles = aStyles;

            //    columnStyle = style; //(VersatileDataGridColumnStyle)slColumnStyles.GetByIndex(0);
            //}
            return(columnStyle);
        }
Exemple #11
0
        private void DataBind()
        {
            DataView dv = this.GetDataView();

            ArrayList aColumnStyles = this.columnHeaders1.ColumnStyles;

            for (int x = 0; x < dv.Table.Columns.Count; x++)
            {
                DataColumn col = dv.Table.Columns[x];
                VersatileDataGridColumnStyle columnStyle = this.columnHeaders1.GetColumnStyle(col.ColumnName);
                if (columnStyle == null)
                {
                    columnStyle                = new Endogine.Editors.VersatileDataGridColumnStyle();
                    columnStyle.ColumnName     = col.ColumnName;
                    columnStyle.DisplayOrdinal = x;
                    aColumnStyles.Add(columnStyle);
                }
            }
            this.columnHeaders1.ColumnStyles = aColumnStyles;

            this.panelSubGrid.Controls.Clear();
            this.panelSubGrid.SuspendLayout();

            this.columnHeaders1.SetupColumns();
            this.columnHeaders1.Visible = this.columnHeadersVisible;

            this.bNoRecalcing = true;


            for (int y = 0; y < dv.Count; y++)
            {
                DataRowView rowView = dv[y];
                for (int x = 0; x < dv.Table.Columns.Count; x++)
                {
                    DataColumn col = dv.Table.Columns[x];
                    VersatileDataGridColumnStyle columnStyle = this.GetColumnStyle(col.ColumnName);

                    Control ctrl = null;
                    if (columnStyle.DisplayType == typeof(TextBox))
                    {
                        TextBox tb = new TextBox();
                        tb             = new TextBox();
                        tb.BorderStyle = BorderStyle.None;
                        tb.Enabled     = false;
                        tb.BackColor   = System.Drawing.Color.White;
                        tb.Text        = rowView[col.ColumnName].ToString();
                        ctrl           = tb;
                    }
                    else if (columnStyle.DisplayType == typeof(System.Windows.Forms.PictureBox))
                    {
                        PictureBox pb = new System.Windows.Forms.PictureBox();
                        //Endogine.ResourceManagement.MemberBitmapBase
                        //	mb = new Endogine.ResourceManagement.MemberBitmapBase();
                        object obj = rowView[col.ColumnName];
                        if (obj.GetType() == typeof(Endogine.MemberSpriteBitmap))
                        {
                        }
                        Endogine.MemberSpriteBitmap mb =
                            (Endogine.MemberSpriteBitmap)EH.Instance.CastLib.GetOrCreate("Button2Down");
                        Bitmap bmp = mb.Thumbnail;
//						Bitmap bmp = new Bitmap(20,20,System.Drawing.Imaging.PixelFormat.Format24bppRgb);
//						Graphics g = Graphics.FromImage(bmp);
//						g.FillRectangle(new SolidBrush(Color.Red), 0,0,20,20);
                        pb.Image = bmp;
                        ctrl     = pb;
                    }

                    if (ctrl != null)
                    {
                        this.panelSubGrid.Controls.Add(ctrl);
                    }
                }
            }
            this.bNoRecalcing = false;

            this.panelSubGrid.ResumeLayout();
            //this.columnHeaders1.ResumeLayout();

            RefreshLayout();
        }
        public void SetColumnSpecificStyle(VersatileDataGridColumnStyle colStyle)
        {
            VersatileDataGridColumnStyle style = this.columnHeaders1.GetColumnStyle(colStyle.ColumnName);

            ArrayList aStyles = this.columnHeaders1.ColumnStyles;
            if (style!=null)
                aStyles.Remove(style);
            aStyles.Add(colStyle);
            this.columnHeaders1.ColumnStyles = aStyles;
        }