If you have added a TableStyle for your grid, then the code below should set the right column width to be the empty space from a button click. If you need to dynamically do this in response to the user sizing other columns, then there may be more work. But if you only need to do it at the end of your Form_Load, then this code might be sufficient. It assumes your datasource is a datatable. You can download a sample project (C#, VB).
private void button1_Click(object sender, System.EventArgs e)
{
int numCols = ((DataTable)(dataGrid1.DataSource)).Columns.Count;
//the fudge -4 is for the grid borders
int targetWidth = dataGrid1.ClientSize.Width - SystemInformation.VerticalScrollBarWidth - 4;
int runningWidthUsed = this.dataGrid1.TableStyles[''customers''].RowHeaderWidth;
for(int i = 0; i < numCols - 1; ++i)
runningWidthUsed += this.dataGrid1.TableStyles[''customers''].GridColumnStyles[i].Width;
if(runningWidthUsed < targetWidth)
this.dataGrid1.TableStyles[''customers''].GridColumnStyles[numCols - 1].Width = targetWidth - runningWidthUsed;
}
Share with