2011-11-04 32 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 
相關問題