Странная проблема с сеткой данных и табулированием C #
У меня странная проблема. у меня естьTabControl
с двумяTabPages
, Каждая страница имеетdatagridview
, Обеdatagridviews
населеныXML
файлы.
Я хочу иметьAutoSizeColumnsMode
установлен в "Fill
" для обоихDataGridViews
, Я хочу установить ширину столбцов в моем коде.
И все прекрасно работает дляTabPage1
но установка ширины дляDataGridView
наTabPage2
бросаетNullReferenceException
.
Я действительно не понимаю, потому что я делаю то же самое, что и дляdatagridview1
и там работает нормально ноdatagridview2
бросает исключение. Кроме того, нет никаких исключений, если я выберу любойAutoSizeColumnsMode
ценность ноFill
.
Вот код:
XmlReader xmlFile = XmlReader.Create("File1.xml", new XmlReaderSettings());
DataSet ds = new DataSet();
ds.ReadXml(xmlFile);
dataGridView1.DataSource = ds.Tables[0];
dataGridView1.Sort(dataGridView1.Columns[1], ListSortDirection.Ascending);
dataGridView1.Columns[0].Width = 35;
dataGridView1.Columns[1].Width = 248;
dataGridView1.Columns[2].Width = 110;
dataGridView1.Columns[3].Width = 140;
dataGridView1.Columns[9].Width = 127;
dataGridView1.Columns[0].Visible = false;
dataGridView1.Columns[1].Visible = true;
dataGridView1.Columns[2].Visible = true;
dataGridView1.Columns[3].Visible = true;
dataGridView1.Columns[4].Visible = false;
dataGridView1.Columns[5].Visible = false;
dataGridView1.Columns[6].Visible = false;
dataGridView1.Columns[7].Visible = false;
dataGridView1.Columns[8].Visible = false;
dataGridView1.Columns[9].Visible = true;
dataGridView1.Columns[10].Visible = true;
dataGridView1.Columns[10].Width = 100;
xmlFile.Close();
XmlReader xmlFile2= XmlReader.Create("File2.xml", new XmlReaderSettings());
DataSet ds2 = new DataSet();
ds2.ReadXml(xmlFile2);
dataGridView2.DataSource = ds2.Tables[0];
dataGridView2.Columns[0].Width = 135; // The exception is thrown here
dataGridView2.Columns[9].Width = 200;
dataGridView2.Columns[8].Width = 300;
dataGridView2.Columns[7].Width = 70;
dataGridView2.Columns[6].Width = 70;
dataGridView2.Columns[5].Width = 124;
dataGridView2.Columns[4].Width = 81;
dataGridView2.Columns[3].Width = 70;
dataGridView2.Columns[2].Width = 70;
dataGridView2.Columns[1].Width = 124;
dataGridView2.Columns[0].Visible = true;
dataGridView2.Columns[1].Visible = true;
dataGridView2.Columns[2].Visible = true;
dataGridView2.Columns[3].Visible = true;
dataGridView2.Columns[4].Visible = true;
dataGridView2.Columns[5].Visible = false;
dataGridView2.Columns[6].Visible = false;
dataGridView2.Columns[7].Visible = false;
dataGridView2.Columns[9].Visible = false;
xmlFile2.Close();