我可以解决这个问题,但是想确定发生这种情况的原因
众所周知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)
任何人都可以解释一下吗?