4つの列を持つDataGridViewがあります。最初の3つは赤、緑、青の配列として返されます。すべての値は0〜255です。私はプログラムで "Color"という列を追加しました。この列の背景色にRGBの内容を反映させたい。 rgbデータが正しく表示され、デバッガを使用して、バックカラーがプロパティに対して正しく設定されています。列の背景色を設定することもでき、正しく表示されます。私は "赤"セルの背景色を設定しようとしましたが、これはどちらも動作しません。DataGridViewセルのバックカラーが設定されていません
完全に白カラムで以下のコードをもたらします。
ここに私のコードです:
DataGridViewColumn DGC = new DataGridViewColumn();
DGC.Name = "Colour";
DGC.CellTemplate = new DataGridViewTextBoxCell();
dgPallette.Columns.Add(DGC);
foreach (DataGridViewRow DGR in dgPallette.Rows)
{
Color cellColor = Color.FromArgb(
int.Parse(DGR.Cells["Red"].Value.ToString()),
int.Parse(DGR.Cells["Green"].Value.ToString()),
int.Parse(DGR.Cells["Blue"].Value.ToString()));
DGR.Cells["Colour"].Style.BackColor = cellColor;
}
任意のアイデア?
事前 のおかげでジム・
ありがとうございました。データグリッドの内容はコンボボックスに依存します。私はselecteditemのchangeイベントで、新しい戻り配列に対して上記のコードを呼び出すようにしました。色が正しく表示されています。私はコードの後にdatagridview.Update()を呼び出そうとしましたが、最初の更新は起こっていません.... – Spodgy
ありがとうございました。私はCellFormattingイベントを実装しましたが、これは問題をソートしているようです。 – Spodgy
プライベートボイドdgPallette_CellFormatting(オブジェクト送信者、DataGridViewCellFormattingEventArgs E) {IF(e.ColumnIndex == dgPallette.Columns [ "カラー"]インデックス。) {DataGridViewRow DGR = dgPallette.Rows [e.RowIndex]。 e.CellStyle.BackColor = Color.FromArgb( int.Parse(DGR.Cells ["Red"]。Value.ToString())、 int.Parse(DGR.Cells ["Green"]。Value.ToString ))、 int.Parse(DGR.Cells ["Blue"]。Value.ToString())); } } – Spodgy