Vb.net 设置数据源后无法访问DataGridView列
我有一个奇怪的问题。我通过设置Vb.net 设置数据源后无法访问DataGridView列,vb.net,winforms,datagridview,Vb.net,Winforms,Datagridview,我有一个奇怪的问题。我通过设置.DataSource属性将datatable绑定到DataGridView,之后我无法访问DataGridView列 Dim dtPML As New DataTable dtPML.Columns.Add("ID_IN_DATASOURCE", Type.GetType("System.String")) dtPML.Columns.Add("SELECTED", Type.GetType("System.Boolean")) dtPML.Columns.Ad
.DataSource
属性将datatable
绑定到DataGridView
,之后我无法访问DataGridView列
Dim dtPML As New DataTable
dtPML.Columns.Add("ID_IN_DATASOURCE", Type.GetType("System.String"))
dtPML.Columns.Add("SELECTED", Type.GetType("System.Boolean"))
dtPML.Columns.Add("DESCRIPTION", Type.GetType("System.String"))
grdHorizonPMLRadit.DataSource = dtPML
'next line fails with NullReferenceException
grdHorizonPMLRadit.Columns("ID_IN_DATASOURCE").Visible = False
当检查grdHorizonPMLRadit.Columns.Count时,它显示零列,尽管CType(grdHorizonPMLRadit.DataSource,DataTable).Columns.Count返回3
为什么DataGridView
没有从Datatable
生成列
.AutoGenerateColumns
属性设置为true。它是在另一个线程中完成的还是仅在绘制网格时完成的?若我只是设置Datasource,在表单完全加载之前不接触.Columns集合,那个么列是可访问的
奇怪的是,我以前做过这个,效果很好。我最近切换到Visual Studio 2013,在Datagridview
数据处理方面是否有一些变化?
提前谢谢。是的,你注意到的行为是正常的。尽管设置了DataSource
属性,但在显示网格之前,DatagridView
不会创建列
尝试在事件中移动这行代码,以确保创建了列:
grdHorizonPMLRadit.Columns("ID_IN_DATASOURCE").Visible = False