【问题标题】:DataGridView columns still automatically created even with AutoGenerateColumns = False即使使用 AutoGenerateColumns = False,仍会自动创建 DataGridView 列
【发布时间】:2016-03-25 00:00:01
【问题描述】:

我有一个 DataGridView 并将 AutoGenerateColumns 属性设置为 false,但是当我构建我的项目时,这些列是自动生成的。

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

我以前也遇到过这个问题,不知道如何解决。

任何建议将不胜感激。

谢谢。

【问题讨论】:

    标签: vb.net winforms datagridview


    【解决方案1】:

    我知道这是一个老问题,但也许它可以帮助搜索相同问题的人:

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

    DataGridView1.AutoGenerateColumns = False
    DataGridView1.DataSource = mySource
    

    【讨论】:

      【解决方案2】:

      我已经重新添加了控件,它似乎暂时可以正常工作。我相信某些东西已经损坏,导致了问题。正如我在问题中提到的那样,我以前发生过这种情况。如果其他人有类似的问题,如果您能提供一些详细信息,那就太好了。

      【讨论】:

      • 8 年后,使用 Visual Studio 2017 解决了同样的问题。希望MS有一天会找到解决方案。这真的很烦人。在成熟的应用程序中,读取控件可能会让人头疼!
      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-06-28
        • 1970-01-01
        • 2018-01-16
        • 1970-01-01
        • 2017-10-30
        • 1970-01-01
        • 2011-04-05
        相关资源
        最近更新 更多