Я могу обойти это, но хотел бы точно указать, где и почему это происходит
как мы все знаем NullReferenceException
- это исключение .net, указывающее ссылки на объект, прежде чем он имеет значение. Но почему это происходит, если другие свойства могут быть назначены тому же объекту?
мой пример ниже:
'before this line, I create and populate a datatable (dt)
With dgvWMStockList
'assign the datasource to the dgv
.DataSource = dt
'configure its settings
.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells
.Columns("Description").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
'NullReferenceException gets thrown next
.Columns("Description").MinimumWidth = 200
End With
Во время отладки я получаю сообщение об ошибке, затем через 1 секунду я могу продолжить работу без редактирования кода. это указывает на то, что ссылка либо установлена вне кода, либо установлена из другого потока.
Обратите внимание, что перемещение вызова .MinimumWidth
за пределы предложения With
не устраняет проблему.
Стек указывает:
at System.Windows.Forms.DataGridViewBand.set_Thickness(Int32 value)
at System.Windows.Forms.DataGridViewBand.set_MinimumThickness(Int32 value)
Кто-нибудь может пролить свет?