我正在尝试以绑定到 DataTable 的表单显示 DataGridView,但它没有显示出来。我正在使用 C1TrueDBGrid 执行此操作,并且正在工作......由于 TrueDBGrid 的一些复杂性,我决定切换到使用 DataGridView。谁能帮我弄清楚为什么什么都没有显示?
在表格中我声明这些:
Public binData As DataSet
Friend WithEvents dgvData As System.Windows.Forms.DataGridView
binData 填充了通过单独的计算例程创建的表。然后这是表单加载事件:
'create a tab page and add data grid view for every table in the set
For i = 0 To binData.Tables.Count - 1
Dim tabPage As C1.Win.C1Command.C1DockingTabPage = New C1.Win.C1Command.C1DockingTabPage
tabPage.Text = binData.Tables(i).TableName
tabContent.TabPages.Add(tabPage)
Dim dgvData = New System.Windows.Forms.DataGridView
Dim binding As New BindingSource
binding.DataSource = binData.Tables(i)
With dgvData
.Dock = DockStyle.Fill
.AllowUserToOrderColumns = False
.AllowUserToAddRows = False
.AllowUserToDeleteRows = False
.DefaultCellStyle.Alignment = DataGridViewContentAlignment.BottomLeft
.DataSource = binding
.AutoGenerateColumns = True
End With
tabPage.Controls.Add(dgvData)
Next 'DataTable In binData.Tables
当表单加载时,标签页在那里并按预期标记,但它们看起来是空的(没有表格)。
我确实尝试将 DataSource 设置为名为 binData 的 DataSet(而不是特定表),然后将 dgvData 的 DataMember 属性设置为我要在其中显示的特定表的名称……这没有区别。
注意:我需要能够在运行时以编程方式执行此操作,而不是使用可视化设计器,因为在表单加载特定数据集之前我不知道我需要的确切网格数量 - 它获得的数据集可以有不同的数字表取决于用户想要什么。