XPTable.Models.Table.OnColumnPropertyChanged C# (CSharp) Method

OnColumnPropertyChanged() protected method

Raises the ColumnPropertyChanged event
protected OnColumnPropertyChanged ( ColumnEventArgs e ) : void
e ColumnEventArgs A ColumnEventArgs that contains the event data
return void
        protected internal virtual void OnColumnPropertyChanged(ColumnEventArgs e)
        {
            if (this.CanRaiseEvents)
            {
                Rectangle columnHeaderRect;

                if (e.Index != -1)
                {
                    columnHeaderRect = this.ColumnHeaderRect(e.Index);
                }
                else
                {
                    columnHeaderRect = this.ColumnHeaderRect(e.Column);
                }

                switch (e.EventType)
                {
                    case ColumnEventType.VisibleChanged:
                    case ColumnEventType.WidthChanged:
                        {
                            if (e.EventType == ColumnEventType.VisibleChanged)
                            {
                                if (e.Column.Visible && e.Index != this.lastSortedColumn)
                                {
                                    e.Column.InternalSortOrder = SortOrder.None;
                                }

                                if (e.Index == this.FocusedCell.Column && !e.Column.Visible)
                                {
                                    int index = this.ColumnModel.NextVisibleColumn(e.Index);

                                    if (index == -1)
                                    {
                                        index = this.ColumnModel.PreviousVisibleColumn(e.Index);
                                    }

                                    if (index != -1)
                                    {
                                        this.FocusedCell = new CellPos(this.FocusedCell.Row, index);
                                    }
                                    else
                                    {
                                        this.FocusedCell = CellPos.Empty;
                                    }
                                }
                            }

                            if (columnHeaderRect.X <= 0)
                            {
                                this.Invalidate(this.PseudoClientRect);
                            }
                            else if (columnHeaderRect.Left <= this.PseudoClientRect.Right)
                            {
                                this.Invalidate(new Rectangle(columnHeaderRect.X,
                                    this.PseudoClientRect.Top,
                                    this.PseudoClientRect.Right - columnHeaderRect.X,
                                    this.PseudoClientRect.Height));
                            }

                            this.UpdateScrollBars();

                            break;
                        }

                    case ColumnEventType.TextChanged:
                    case ColumnEventType.StateChanged:
                    case ColumnEventType.ImageChanged:
                    case ColumnEventType.HeaderAlignmentChanged:
                        {
                            if (columnHeaderRect.IntersectsWith(this.HeaderRectangle))
                            {
                                this.Invalidate(columnHeaderRect);
                            }

                            break;
                        }

                    case ColumnEventType.AlignmentChanged:
                    case ColumnEventType.RendererChanged:
                    case ColumnEventType.EnabledChanged:
                        {
                            if (e.EventType == ColumnEventType.EnabledChanged)
                            {
                                if (e.Index == this.FocusedCell.Column)
                                {
                                    this.FocusedCell = CellPos.Empty;
                                }
                            }

                            if (columnHeaderRect.IntersectsWith(this.HeaderRectangle))
                            {
                                this.Invalidate(new Rectangle(columnHeaderRect.X,
                                    this.PseudoClientRect.Top,
                                    columnHeaderRect.Width,
                                    this.PseudoClientRect.Height));
                            }

                            break;
                        }
                }

                if (ColumnPropertyChanged != null)
                {
                    ColumnPropertyChanged(e.Column, e);
                }
            }
        }
Table