• 締切済み

DataGridViewで指定列の背景色の変更

いつもお世話になっております。 C#の開発環境で、「DataGridView」を使用しているのですが、指定した列の色を変更するプログラムを作成しています。 現在、フォーム上に配置したDataGridView「dgvTable」のセルの列の背景色を、 「更新」ボタン押して変更するプログラムを作成しています。 ソースは以下の通りです。 for( int i = 0; i < selectCols; i++) { dgvTable.Columns.Add("col",""); dgvTable.Columns[i].DefaultCellStyle.BackColor = Color.LightGreen; } このループで背景色を変更したつもりでしたが、反映されませんでした。 変更する列の数は変動するので、フォームのロードイベントで変更することができません。 どのようにコードを書けば、背景色が反映されるかをご教授願えないでしょうか? よろしくお願いします。

みんなの回答

  • MARU4812
  • ベストアンサー率43% (196/452)
回答No.2

提示のコードのみであれば、こちらの環境では 問題なく背景色の変更ができました。 # 定義されていない変数などは全て定数で置き換えましたが。

  • MARU4812
  • ベストアンサー率43% (196/452)
回答No.1

このコードでも反映される事は反映されますね。 DataSource が設定されていないので新規入力行しか 表示されませんが。 > このループで背景色を変更したつもりでしたが、反映されませんでした。 確認方法が悪いか、カラムから追加するプログラム だから、別のデータを追加して表示されていないとか、 別の原因を疑った方がよいのでは? サンプルといえど、もう少しちゃんとデータまで表示 できるコードを書いてもらわないと分からないです。

INDES
質問者

補足

申し訳ないです。 おっしゃる通り、DataSourceは設定しておりません。 直接データベースを設定して、データの書込みは行っておりません。 単純にDataGridViewに空白列を作成し、背景色を設定しているだけです。 この後、 for(int j = 0 ; j < MaxRow ; j++){ dgvTable.Rows.Add(); dgvTable.Rows[RowCount].Cells[0].Value = RowTitle[j]; RowCount++; } で追加した列に行ごとに項目名を書き込んでいます。 簡単に背景色の変更は出来ないのでしょうか?