private void CalculateLastColumnWidth(object sender)
{
if (sorting)
{
return;
}
var dataGridView = sender as DataGridView;
if (dataGridView == null)
{
return;
}
try
{
dataGridView.SuspendDrawing();
dataGridView.SuspendLayout();
var width = dataGridView.Width - dataGridView.RowHeadersWidth;
var verticalScrollbar = dataGridView.Controls.OfType<VScrollBar>().First();
if (verticalScrollbar.Visible)
{
width -= verticalScrollbar.Width;
}
var columnWidth = width / 3;
dataGridView.Columns[0].Width = columnWidth;
dataGridView.Columns[1].Width = columnWidth;
dataGridView.Columns[2].Width = columnWidth + (width - (columnWidth * 3));
}
finally
{
dataGridView.ResumeLayout();
dataGridView.ResumeDrawing();
}
}