Свойство Width DataGridView всегда возвращает NULL - PullRequest
0 голосов
/ 02 октября 2018

У меня есть DataGridView, который я заполняю из DataSource, например:

this.dgvBackchecks.DataSource = db.GetTableBySQL($"exec usp_Backcheck_Get_List");

Он работает правильно, возвращает столбцы так, как я хочу:

enter image description here

Поэтому я использую свойства 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?

1 Ответ

0 голосов
/ 02 октября 2018

Вы можете попробовать установить свойство столбца AutoSizeMode перед установкой Width

this.dgvBackchecks.Columns["Job No"].AutoSizeMode = DataGridViewAutoSizeColumnMode.None;
this.dgvBackchecks.Columns["Job No"].Width = 60;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...