У меня есть DataGridView
, который я заполняю из DataSource
, например:
this.dgvBackchecks.DataSource = db.GetTableBySQL($"exec usp_Backcheck_Get_List");
Он работает правильно, возвращает столбцы так, как я хочу:
Поэтому я использую свойства DataGridView
, чтобы установить видимые ложные некоторые элементы:
this.dgvBackchecks.Columns["ProjectKey"].Visible = false;
this.dgvBackchecks.Columns["DesignKey"].Visible = false;
this.dgvBackchecks.Columns["BackColor"].Visible = false;
Работает, проблема в том, что я пытаюсь изменить Job No
ширину столбцанапример:
this.dgvBackchecks.Columns["Job No"].Width = 45;
Всегда выдается исключение Null:
System.NullReferenceException: 'Ссылка на объект не установлена на экземпляр объекта.'
Чтобы выполнить простой тест и подтвердить, что Job No
не равно нулю, я пытаюсь установить для видимого из Job No
значение false, как для других столбцов, например:
this.dgvBackchecks.Columns["Job No"].Visible = false;
И это работает !, так что этоНе проблема столбца прийти или нет в DataSource, потому что столбец уже существует.Я действительно не понимаю, в чем здесь проблема.
Полный код:
this.dgvBackchecks.DataSource = db.GetTableBySQL($"exec usp_Backcheck_Get_List");
this.dgvBackchecks.Columns["ProjectKey"].Visible = false;
this.dgvBackchecks.Columns["DesignKey"].Visible = false;
this.dgvBackchecks.Columns["BackColor"].Visible = false;
this.dgvBackchecks.Columns["Job No"].Visible = false; //This works
this.dgvBackchecks.Columns["Job No"].Width = 45; //This no works
В чем проблема со свойством Width
?