我试图在绑定到DataTable的表单中显示DataGridView,但它没有显示出来。我是用C1TrueDBGrid来做这件事的,而且效果很好……由于TrueDBGrid的一些复杂问题,我决定改用DataGridView。谁能帮我弄清楚为什么什么都没显示?
在表单中,我声明了这些:
Public binData As DataSet
Friend WithEvents dgvData As System.Windows.Forms.DataGridViewbinData中填充了通过单独的计算例程创建的表。然后是表单加载事件:
'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属性设置为我希望在it...that中显示的特定表的名称没有任何区别。
注意:我需要能够在运行时以编程方式完成此操作,而不是使用可视化设计器,因为在窗体加载特定数据集之前,我不知道所需的确切网格数量-它获得的数据集可以具有不同数量的表,具体取决于用户的需要。
发布于 2015-05-05 06:55:47
下面是将dgv添加到流面板中的一些粗略代码:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Static dgvCount As Integer
dgvCount += 1
Dim dgvNew As New DataGridView
dgvNew.Width = DataGridView1.Width
dgvNew.Height = DataGridView1.Height
dgvNew.Name = "dgv" & dgvCount
' clone other properties as need
FlowLayoutPanel1.Controls.Add(dgvNew)
Debug.Print(FlowLayoutPanel1.Controls(FlowLayoutPanel1.Controls.Count - 1).Name)
End Sub以一个dgv - DataGridView1作为属性的模型开始。锚定在流面板中不起作用,因此可能需要更改一些自定义代码的宽度。
Flow面板不会滚动,所以可能不是最好的选择--看看TableLayout的可能性。TabControl是另一种选择。
发布于 2015-05-05 21:14:10
好吧,事实证明我的所作所为没什么问题。问题出现在与绑定DGV数据源或任何内容无关的一行代码中。
ComponentOne有一个称为ThemeController的控件,您可以在其中为窗体和其中的控件设置主题。我有一行代码将dgvData的主题设置为我的默认应用程序主题(它设置视觉样式和有关颜色、字体等的细节)。不管是什么原因,这使得我的网格不可见。我会向他们登记一张罚单。
https://stackoverflow.com/questions/30034139
复制相似问题