Exemple #1
0
        public AbstractGridEditor Edit(IColumn c)
        {
            AbstractGridEditor ctr = c.GetEditControl();

            ctr.Width       = c.Width - 1; // minus jedna je prave ohraniceni ramecku
            ctr.Height      = this.Height;
            ctr.Value       = this[c.Name];
            ctr.RowIndex    = this.Index;
            ctr.ColumnName  = c.Name;
            ctr.CellPadding = c.Padding;

            if (this.parent_collection.StartEditRow(this))
            {
                OnRowEditStart(); //zavola udalost
            }

            return(ctr);
        }
Exemple #2
0
        public override void Refresh()
        {
            //prerovna eventualni ovladaci prvky
            Dictionary <int, AbstractGridEditor> seznam = new Dictionary <int, AbstractGridEditor>();

            for (int i = 0; i < this.Controls.Count; i++)
            {
                if (this.Controls[i] is AbstractGridEditor)
                {
                    AbstractGridEditor ctr = (AbstractGridEditor)this.Controls[i];

                    seznam.Add(ctr.RowIndex, ctr);
                }
            }

            int y = 0;

            //TODO: zoptimalizovat
            if (this.Rows != null)
            {
                for (int row_index = 0; row_index < this.Rows.Count; row_index++)
                {
                    if (seznam.ContainsKey(row_index))
                    {
                        if (row_index >= this.start_index)
                        {
                            seznam[row_index].Visible  = true;
                            seznam[row_index].Location = new Point(GetXColPosition(this.Columns[seznam[row_index].ColumnName]) - this.MoveX, y);
                        }
                        else
                        {
                            seznam[row_index].Visible = false;
                        }
                    }

                    if (row_index >= this.start_index)
                    {
                        y += this.Rows[row_index].Height + 1;
                    }
                }
            }

            base.Refresh();
        }
Exemple #3
0
        protected override void OnDoubleClick(EventArgs e)
        {
            base.OnDoubleClick(e);

            //vzdy je editovatelna jen jedna bunka
            this.Controls.Clear();

            CellPosition pos = this.GetCell(this.PointToClient(MousePosition));

            if (!pos.col.ReadOnly)
            {
                //this.Rows[pos.row.Index][pos.col.Name].
                AbstractGridEditor ctr   = pos.row.Edit(pos.col);
                int         y            = 0;
                List <IRow> visible_rows = this.getVisibleRows();
                foreach (IRow r in visible_rows)
                {
                    if (r.Index == pos.row.Index)
                    {
                        break;
                    }
                    y += r.Height + 1;
                }

                int x = GetXColPosition(pos.col);

                ctr.Location = new Point(x, y);

                ctr.Validators = pos.col.Validators;

                Controls.Add(ctr);
                ctr.Focus();

                ctr.LostFocus += new System.EventHandler(ctr_LostFocus);
                ctr.EndEdit   += new System.EventHandler(ctr_EndEdit);
            }
        }