Reputation: 319
I fill my DataGridView from a DataTable. My DataGridView has the SelectionMode RowHeaderSelect, but I now want to change it to ColumnHeaderSelect.
But when I change the property I get an exception.
My Code so for the RowHeaderSelect:
How I create my Datatable:
values = new string[numbersOfRows, numbersOfColumns]; //is filled in a different part in the code
DataTable dt = new DataTable();
for (int i = 0; i < numbersOfColumns; i++)
{
dt.Columns.Add(values[0, i]);
}
for (int j = 2; j < numbersOfRows; j++)
{
DataRow row = dt.NewRow();
for (int i = 0; i < numbersOfColumns; i++)
{
row[i] = values[j,i];
}
dt.Rows.Add(row);
}
How I create my DataGridView:
dgv_schedule.DataSource = dt.DefaultView; //In this line I get my exception when I change
//the SelectionMode from RowHeaderSelect to
//ColumnHeaderSelect
Does anyone have an idea what I am doing wrong?
exception: System.InvalidOperationException and I work with WinForms
Upvotes: 2
Views: 323
Reputation: 319
I solved my problem by adding this code:
dgv_schedule.DataSource = dt.DefaultView; //Selection mode is RowHeaderSelect
for (int i = 0; i < numberOfColumns; i++)
{
dgv_schedule.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable;
}
dgv_schedule.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.ColumnHeaderSelect;
Upvotes: 1