2009-06-08 43 views
1

我想動態添加一個按鈕列到DataGridView中後,它已被填充。 按鈕列在添加後是可見的,但是當我試圖循環訪問DataGridView行時,每個單元格中的按鈕都會出現空值。Win窗體DataGridView動態添加按鈕列

var buttonCol = new DataGridViewButtonColumn(); 
buttonCol.Name = "ButtonColumnName"; 
buttonCol.HeaderText = "Header"; 
buttonCol.Text = "Button Text"; 

dataGridView.Columns.Add(buttonCol); 

foreach (DataGridViewRow row in dataGridView.Rows) 
{ 
    var button = (Button)row.Cells["ButtonColumnName"].Value; 
    // button is null here! 
} 

回答

4

我剛纔嘗試完全相同的東西,無法讓它工作;我的解決方案(因爲它只是一個測試應用程序)就是改變按鈕單元的背景顏色並測試它。非常糟糕。但是,回顧一下代碼 - 你是否試圖將row.Cells["ButtonColumnName"]轉換爲DataGridViewButtonCell,然後檢查那些屬性?

0

使用

foreach (DataGridViewRow row in dataGridView.Rows) 
{ 
    DataGridViewButtonCell button = (row.Cells["ButtonColumnName"] as DataGridViewButtonCell);   
} 
4

使用此:

foreach (DataGridViewRow row in dataGridView.Rows) 
{ 
    // DataGridViewButtonCell button = (row.Cells["ButtonColumnName"] as DataGridViewButtonCell); 
    row.Cells["ButtonColumnName"].Value = "ButtonText"; 
} 
1

你必須在你的代碼添加婁代碼,那麼你就可以看到「按鈕文字「:

buttonCol.UseColumnTextForButtonValue = true;