こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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

いつもお世話になっております。

C#の開発環境で、「DataGridView」を使用しているのですが、指定した列の色を変更するプログラムを作成しています。

現在、フォーム上に配置したDataGridView「dgvTable」のセルの列の背景色を、
「更新」ボタン押して変更するプログラムを作成しています。

ソースは以下の通りです。

for( int i = 0; i < selectCols; i++)
{
dgvTable.Columns.Add("col","");
dgvTable.Columns[i].DefaultCellStyle.BackColor = Color.LightGreen;
}

このループで背景色を変更したつもりでしたが、反映されませんでした。

変更する列の数は変動するので、フォームのロードイベントで変更することができません。
どのようにコードを書けば、背景色が反映されるかをご教授願えないでしょうか?

よろしくお願いします。

投稿日時 - 2011-07-11 10:30:48

QNo.6868305

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

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

投稿日時 - 2011-07-11 17:33:08

ANo.1

このコードでも反映される事は反映されますね。
DataSource が設定されていないので新規入力行しか
表示されませんが。

> このループで背景色を変更したつもりでしたが、反映されませんでした。
確認方法が悪いか、カラムから追加するプログラム
だから、別のデータを追加して表示されていないとか、
別の原因を疑った方がよいのでは?

サンプルといえど、もう少しちゃんとデータまで表示
できるコードを書いてもらわないと分からないです。

投稿日時 - 2011-07-11 11:39:17

補足

申し訳ないです。

おっしゃる通り、DataSourceは設定しておりません。
直接データベースを設定して、データの書込みは行っておりません。

単純にDataGridViewに空白列を作成し、背景色を設定しているだけです。

この後、
for(int j = 0 ; j < MaxRow ; j++){
dgvTable.Rows.Add();
dgvTable.Rows[RowCount].Cells[0].Value = RowTitle[j];
RowCount++;
}
で追加した列に行ごとに項目名を書き込んでいます。

簡単に背景色の変更は出来ないのでしょうか?

投稿日時 - 2011-07-11 12:12:40

あなたにオススメの質問