DOBON.NET DOBON.NETプログラミング掲示板過去ログ

DataGridで、データを選択した時も、設定した背景色と同じにしたい

環境/言語:[win2000/VB.NET]
分類:[.NET]

よろしくお願いします。
背景色は全てグレーで、罫線も無しのDataGridを作成しています。
ですが、データを選択した時にそのデータの背景色が白になってしまい、ものすごく浮いています。
このデータ選択時の背景色もグレーにしたいのです。

理想を言うとエクセルのようにセル範囲が選択されたような感じにしたいのですが。
なんとなく、値が変更できそうな印象になってしまうので・・。
(この記事にはファイル"sample.png"が添付されていましたが、削除されました。)
■No3660に返信(senchiさんの記事)
> よろしくお願いします。
> 背景色は全てグレーで、罫線も無しのDataGridを作成しています。
> ですが、データを選択した時にそのデータの背景色が白になってしまい、ものすごく浮いています。
> このデータ選択時の背景色もグレーにしたいのです。
>
> 理想を言うとエクセルのようにセル範囲が選択されたような感じにしたいのですが。
> なんとなく、値が変更できそうな印象になってしまうので・・。
>

こんにちは!
DagaGridの背景色ですが・・・

・SelectionBackColor
・SelectionForeColor

という2つのプロパティを自分の変えたい色に変えればいいと思います。
ソースの場合はTableStyleでプロパティを設定してください。

DataGridTableStyle tableStyle = new DataGridTableStyle();
tableStyle.MappingName = myDataSet.Tables["Customers"].TableName;
tableStyle.SelectionBackColor = Color.FromArgb( 240 , 234 , 89 );
tableStyle.SelectionForeColor = Color.Black;
■No3664に返信(laughさんの記事)

回答ありがとうございます。

> ・SelectionBackColor

は、群青色(?)を設定しています。
列選択したときは良いのですが、データ単体を選択すると、
値のまわりだけ背景が群青色になり、その周りの領域は白くなっていしまいました。
もしかして、フォームの背景色がでてるのかと思い、フォームの背景色もグレーに
したのですが、変化ありませんでした。(==;)

スクロールバーなどと一緒でシステムが固有で持っている固定の色でしか表示されないのでしょうか・・。
質問の意味と違っていたら申し訳ありませんが、選択されているセルのTextBoxのBackColorを変えてみるというのではどうでしょうか?

・過去ログ
http://dobon.net/cgi-bin/vbbbs/cbbs.cgi?mode=al2&namber=2778&rev=&no=0&KLOG=1
■No3671に返信(管理人さんの記事)

回答ありがとうございます。
教えていただいた内容を参考に、任意のセルを着色させる処理を組んでみました。
色の変更はうまくいったのですが、やはりそのセルを選択するとセル背景は白くなってしまいました。
試しに、選択時の背景色を変えてみた(背景:薄黄。文字:黒)のですが、行選択の時のみ反映され
セルを選択した時の色は、相変わらず標準(文字周り背景:群青。セル背景:薄灰。文字:白)のままでした。
どうも、セル(データ)を選択した時の状態は固定みたいです。

データを扱う事が前提のDataGridに、セルという概念を持ち込もうとするのが間違ってるような気がしてきました(==;)。
思えば、オブジェクトブラウザも動作的には同様ですし・・・。
時間もなくなってきてまして、「エクセル的に使うなら(高いけど)ElTablleがいい」とも言われているので
ElTablleを使う方向で、今後の作業を進めたいと思います。
つまらない結論ですいません。m(+_+;)m

でも、皆さんから教えていただいた技法は大変勉強になりました。
おかげさまで、ほとんど良く分からなかったDataGridがだんだん分かってきました。
次の機会には今回の知識が生かせるよう頑張りたいと思います。
それでは、かさねがさねありがとうございました。
m(^^)m
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板