IMO, лучший (и самый эффективный) способ сделать это - создать дополнительный столбец в конце, чтобы он мог "съесть" (или " занять") пространство, которое не занято другими столбцами. Способ сделать это состоит в том, чтобы установить для свойства AutoSizeMode значение Fill .
.
Вот пример кода:
DataGridView grid = new DataGridView();
DataTable data = new DataTable();
//add columns, rows, etc. to DataTable data
data.Columns.Add("This is the first column."); data.Rows.Add(data.NewRow());
//etc.
//Add EXTRA column:
data.Columns.Add(""); //blank header
//Save changes
data.AcceptChanges();
//Set datasource
grid.DataSource = data;
Теперь у вас есть сетка с дополнительным пустым столбцом.
Мы должны установить для столбца правильные свойства:
data.Columns(1).AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; //Sets AutoSizeMode to fill, as explained above, for 2nd column
Также, как объяснил najameddine, вы можете установить следующие свойства:
ReadOnly = true;
SortMode =
NotSortable;
По сути, вы создаете пустой столбец, который занимает пустое место.
P.S. Я только что заметил, что у surajitkhamrai очень похожий пример кода, но мой - на C #, однако концепция остается прежней.