即使使用AutoGenerateColumns = False,仍会自动创建DataGridView列

时间:2010-09-07 01:26:23

标签: vb.net winforms datagridview

我有一个DataGridView并且AutoGenerateColumns属性设置为false,但是当我构建项目时,列是Auto Generated。

我可以在Form的Designer.vb代码中看到该属性设置为false。

我以前遇到过这个问题而且我不确定如何修复它。

任何建议都将不胜感激。

感谢。

3 个答案:

答案 0 :(得分:1)

我重新添加了控件,它似乎暂时正在工作。我相信有些东西被破坏了,造成了问题。正如我在问题中提到的,我之前已经发生过这种情况。如果其他人有这样的问题,那么如果你能提供一些细节就会很棒。

答案 1 :(得分:1)

我知道这是一个老问题,但也许有助于搜索同一问题的人:

我今天遇到了这个问题。在设置DataSource之前设置'AutoGenerateColumns'属性非常重要,否则在您告诉DataGridView不这样做之前会生成列:

DataGridView1.AutoGenerateColumns = False
DataGridView1.DataSource = mySource

答案 2 :(得分:0)

我发现如果您在加载表单期间尝试设置列,那么您就会遇到类似这样的奇怪问题。相反,在填充网格之前,我检查是否定义了列,如果没有,那么我继续并在那时配置列。这对我来说很有效 - 在填充列时,我将属性设置为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