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); }