internal void OnRemovedColumn_PostNotification(DataGridViewColumn dataGridViewColumn, Point newCurrentCell)
        {
            // Update current cell if needed
            if (newCurrentCell.X != -1)
            {
                Debug.Assert(this.ptCurrentCell.X == -1);
                bool success = SetAndSelectCurrentCellAddress(newCurrentCell.X, 
                                                              newCurrentCell.Y, 
                                                              true, 
                                                              false, 
                                                              false, 
                                                              false /*clearSelection*/, 
                                                              false /*forceCurrentCellSelection*/);
                Debug.Assert(success);
            }

            // Raise SelectionChanged event if needed
            FlushSelectionChanged();

            // Raise ColumnStateChanged event for Displayed state of deleted column
            OnColumnHidden(dataGridViewColumn);

            // Columns that are removed from the collection take their non-autosized width
            // Note that in some edge cases, the dev could have changed:
            //     - the grid's AutoSizeColumnsMode
            //     - the column's Width or AutoSizeMode
            // in a ColumnRemoved event handler for example, in which case using the CachedThickness may be wrong.
            // At least we make sure the column is not sized smaller than its minimum width.
            DataGridViewAutoSizeColumnMode autoSizeColumnMode = dataGridViewColumn.GetInheritedAutoSizeMode(this);
            Debug.Assert(autoSizeColumnMode != DataGridViewAutoSizeColumnMode.NotSet);
            if (autoSizeColumnMode != DataGridViewAutoSizeColumnMode.None &&
                autoSizeColumnMode != DataGridViewAutoSizeColumnMode.Fill && 
                dataGridViewColumn.ThicknessInternal != dataGridViewColumn.CachedThickness)
            {
                dataGridViewColumn.ThicknessInternal = Math.Max(dataGridViewColumn.MinimumWidth, dataGridViewColumn.CachedThickness);
            }

            // Autosize rows if needed
            AdjustShrinkingRows(this.autoSizeRowsMode, true /*fixedWidth*/, true /*internalAutosizing*/);
        }
 internal void OnRemovedColumn_PostNotification(DataGridViewColumn dataGridViewColumn, Point newCurrentCell)
 {
     if (newCurrentCell.X != -1)
     {
         this.SetAndSelectCurrentCellAddress(newCurrentCell.X, newCurrentCell.Y, true, false, false, false, false);
     }
     this.FlushSelectionChanged();
     this.OnColumnHidden(dataGridViewColumn);
     DataGridViewAutoSizeColumnMode inheritedAutoSizeMode = dataGridViewColumn.GetInheritedAutoSizeMode(this);
     if (((inheritedAutoSizeMode != DataGridViewAutoSizeColumnMode.None) && (inheritedAutoSizeMode != DataGridViewAutoSizeColumnMode.Fill)) && (dataGridViewColumn.ThicknessInternal != dataGridViewColumn.CachedThickness))
     {
         dataGridViewColumn.ThicknessInternal = Math.Max(dataGridViewColumn.MinimumWidth, dataGridViewColumn.CachedThickness);
     }
     this.AdjustShrinkingRows(this.autoSizeRowsMode, true, true);
 }