【发布时间】:2016-03-25 00:00:01
【问题描述】:
我有一个 DataGridView 并将 AutoGenerateColumns 属性设置为 false,但是当我构建我的项目时,这些列是自动生成的。
我可以在表单的 Designer.vb 代码中看到该属性设置为 false。
我以前也遇到过这个问题,不知道如何解决。
任何建议将不胜感激。
谢谢。
【问题讨论】:
标签: vb.net winforms datagridview
我有一个 DataGridView 并将 AutoGenerateColumns 属性设置为 false,但是当我构建我的项目时,这些列是自动生成的。
我可以在表单的 Designer.vb 代码中看到该属性设置为 false。
我以前也遇到过这个问题,不知道如何解决。
任何建议将不胜感激。
谢谢。
【问题讨论】:
标签: vb.net winforms datagridview
我知道这是一个老问题,但也许它可以帮助搜索相同问题的人:
我今天遇到了这个问题。在设置 DataSource 之前设置“AutoGenerateColumns”属性很重要,否则会在您告诉 DataGridView 不要这样做之前生成列:
DataGridView1.AutoGenerateColumns = False
DataGridView1.DataSource = mySource
【讨论】:
我已经重新添加了控件,它似乎暂时可以正常工作。我相信某些东西已经损坏,导致了问题。正如我在问题中提到的那样,我以前发生过这种情况。如果其他人有类似的问题,如果您能提供一些详细信息,那就太好了。
【讨论】:
我发现,如果您在加载表单期间尝试设置列,那么您会遇到类似这样的奇怪问题。相反,就在填充网格之前,我检查是否定义了列,如果没有,那么我继续并在该点配置列。这对我来说一直有效——填充列时,我将属性设置为 auto add columns = false first thing:
Private Sub Populate_dgvQuoteSelection(status_id As Int32)
dgvQuoteSelection.DataBindings.Clear()
If dgvQuoteSelection.Columns.Count = 0 Then
Setup_dgvQuoteSelection()
End If
Try
dgvQuoteSelection.DataSource = DataService.Quote_HeaderDataService.Quote_GetListView_byStatus(status_id)
Catch ex As Exception
MessageBox.Show(String.Format("An error occured while trying to get the grid data: {0}", ex.Message), "Error populating grid", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
【讨论】: