最初 DataGridView でセルの値によって背景変更する処理をしていました。
例えばTrueなら背景色を付け、Falseならスタイルを無しする下記のような感じです。(C#)
//row は DataGridViewRow オブジェクト
if ((bool)row.Cells["Column1"].Value == true){
row.DefaultCellStyle.BackColor = Color.Red;
}else{
row.DefaultCellStyle.BackColor = SystemColors.WindowText;
}
で、それから下記のように列(Column1)の背景色を設定しようとしたができませんでした。
DataGridView1.Columns["Column1"].DefaultCellStyle.BackColor = Color.Honeydew;
どうやら、スタイルの設定には優先順位があるようです。
優先順位については、dobon:DataGridViewにセルスタイルを設定するで書かれていました。
つまり先にセルスタイルが優先されるので、この場合後から列スタイルを設定しても意味が無かったようです。
しかも今回 row.Cells["Column1"] が false ならセルスタイルを解除したいのになぜか SystemColors.WindowText を指定しているのも問題でした。
この場合、CellStyleにnullを指定してやればいいようです。
こうすると、row.Cells["Column1"] が false のときは、Color.Honeydew 背景色が Color.Honeydew となります。(下記コード参照)
//スタイルをnullにするとスタイル解除となる。
if ((bool)row.Cells["Column1"].Value == true) {
row.DefaultCellStyle.BackColor = Color.Red;
} else {
//row.DefaultCellStyle.BackColor = SystemColors.WindowText;
row.DefaultCellStyle = null;
}