自分用メモです。
C#で、DataGridViewの列をコンボボックス列にした場合、セルの背景色を変えても無操作時の背景色は変わらず、ドロップダウン部分(下方などに展開される選択肢表示部分)だけに色が付いてしまう問題が発生。そういうものか……とおもいつつ調べてみたら設定等で回避可能でした。詳細は下記のstackoverflowの記事に記載されています。
1つの方法は、コンボボックス列のFlatStyleプロパティを「Flat」に設定するというもの。このプロパティはDataGridViewの設定画面から変更可能で、初期状態では「Standard」になっています。これを「Flat」に変更すると、上手くいきました。
もう1つの方法は、DataGridViewの「CellPainting」と「EditingControlShowing」イベントに独自の描画処理を対応させ、自力で背景色などを塗ってしまおうというものですね。とりあえず前者のFlatStyleが楽なので、そちらを優先で考えようと思います。
- 作者: 北村拓也
- 発売日: 2018/12/22
- メディア: Kindle版
- この商品を含むブログを見る