2011-11-04 49 views
0

我需要在单元格中有多行,所以我使用DataGridViewTextBoxColumn.DefaultCellStyle.WrapMode = DataGridViewTriState.True。 我在设计器中添加列(datagridviewtextboxcolumn)。然后将datagridview绑定到与datagridview具有完全相同列的表。然后我发现datagridview有重复的列:第一列是空的(我猜是通过设计器添加的),第二列填充了来自表的数据。我的问题是如何正确地允许多行并同时绑定到一个表?Datagridview在绑定到表格时出现错误的列数

在Designer

Friend WithEvents DGV As New System.Windows.Forms.DataGridView 
Friend WithEvents columnClient As System.Windows.Forms.DataGridViewTextBoxColumn 
Friend WithEvents columnAccount As System.Windows.Forms.DataGridViewTextBoxColumn 
Me.DGV.Columns.AddRange(New System.Windows.Forms.DataGridViewColumn() {Me.columnClient, Me.columnAccount}) 
Dim cellStyle As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle 
cellStyle.WrapMode = DataGridViewTriState.True 
Me.columnClient.DefaultCellStyle = cellStyle 
Me.columnAccount.DefaultCellStyle = cellStyle 

然后我绑定的DataGridView到表

DGV.DataSource = m_table 
m_table.Columns.Add(columnClient) 
m_table.Columns.Add(columnAccount) 

Dim rowText As DataRow = m_table.NewRow 
Dim strBaseKey As String="base key" 
Dim accountkey As String="account key" 
rowText(columnClient) = strBaseKey 
rowText(columnAccount) = accountKey 

补充:我刚刚删除的设计师列和现在的工作。

+0

您应该添加您的解决方案作为一个答案,让社会知道你如何解决这个问题。 –

回答

0

解决方案很简单:只需在设计器中向datagridview添加列;而是将列添加到表中,然后将datagridview绑定到表。要启用多行的DataGridView,设置column.DefaultCellStyle.WrapMode = DataGridViewTriState.True

DGV.DataSource = m_table 
m_table.Columns.Add(columnClient) 
m_table.Columns.Add(columnText) 

Dim rowText As DataRow = m_table.NewRow 
rowText(columnClient) = "Bob" 
rowText(columnAccount) ="Account1" & Encironment.Newline & "Account 2" 

DGVTable.Columns(columnText).DefaultCellStyle.WrapMode = DataGridViewTriState.True 

DataGridView中会显示:

columnClient  columnAccount 
    Bob    Account1 
        Account2 
相关问题