2009-06-08 21 views
1

DataGridViewをポピュレートした後にボタン列を動的に追加したいと思います。 ボタン列は追加後に表示されますが、DataGridView行をループしてみると、各セルのボタンに対してnullが返されます。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にキャスティングして、そのプロパティをチェックしてみましたか?あなたは、このMSDNの記事が役立つかもしれない

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; 
関連する問題