- PR -

DataGridに表示する際、セルの文字列の色を個別に指定する

投稿者投稿内容
ヒフミ
会議室デビュー日: 2004/03/30
投稿数: 16
投稿日時: 2004-04-21 18:10
いつもお世話になっております。

DataTableを使用してDataGridにバインドしてデータを表示させているのですが、
その際、特定のセルの文字列の色を変更してから表示させたいと考えています。

DataGridTableStyleのForeColorでは、表示される全ての文字列の色が変わって
しまうのですが、個別にセルの文字列の色を変更させてからDataGridに表示
させるためにはどのような方法があるのでしょうか?

ご教授頂ければ幸いです。
かずくん
ぬし
会議室デビュー日: 2003/01/08
投稿数: 759
お住まい・勤務地: 太陽系第三惑星
投稿日時: 2004-04-21 19:42
Windows Forms FAQの5.14が参考なるでしょう
みゅう
常連さん
会議室デビュー日: 2004/04/14
投稿数: 49
お住まい・勤務地: 都内某所
投稿日時: 2004-04-21 19:44
引用:

ヒフミさんの書き込み (2004-04-21 18:10) より:
DataGridTableStyleのForeColorでは、表示される全ての文字列の色が変わって
しまうのですが、個別にセルの文字列の色を変更させてからDataGridに表示
させるためにはどのような方法があるのでしょうか?


こんにちわ、みゅうです。
個々のセルと、言うのは判り兼ねますが
カラム毎であるならば

Dim dgTableStyle As DataGridTableStyle
Dim dgColumnStyle As DataGridTextBoxColumn

dgColumnStyle.TextBox.ForeColor = color.AsYouLikeColor
dgTableStyle.GridColumnStyles.Add(dgColumnStyle)
Me.DataGrid1.TableStyles.Add(dgTableStyle)

こんな感じで設定できますよ。
(例はNewやカラム番号又はカラム名称等の設定を省いてます、あしからず)
でも、セル個別なんですよね。。。
それはやったこと無いです、すみません。
ヒフミ
会議室デビュー日: 2004/03/30
投稿数: 16
投稿日時: 2004-04-21 21:05
かずくん様、みゅう様

お二人の回答を参考に、もう一度チャレンジしてみます!



Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-04-22 06:37
諸農です。

別のサイトになりますが、イベント/デリゲートで指定できるコードをアップしました。
参考にしてくださいませ。

GDNJ
DataGrid、列の色指定
http://www.gdncom.jp/general/bbs/ShowPost.aspx?PostID=2802
_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
ヒフミ
会議室デビュー日: 2004/03/30
投稿数: 16
投稿日時: 2004-04-22 10:58
引用:

Jubeiさんの書き込み (2004-04-22 06:37) より:

別のサイトになりますが、イベント/デリゲートで指定できるコードをアップしました。
参考にしてくださいませ。

GDNJ
DataGrid、列の色指定
http://www.gdncom.jp/general/bbs/ShowPost.aspx?PostID=2802




諸農様

いつもありがとうございます。

早速参考にさせていただきます(この参照サイトの方同様、理解に時間がかかってしまうと思いますが・・)。

# GrapeCityから出ているFlexGrid for.NETを使用すれば、セル単位での文字列の色付けなのどはもっと簡単に行えるものなのでしょうか?
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-04-22 18:08
諸農です。

引用:

# GrapeCityから出ているFlexGrid for.NETを使用すれば、セル単位での文字列の色付けなのどはもっと簡単に行えるものなのでしょうか?



トライアル版があったと思いますので、
ダウンロードして試用してみてはいかがでしょうか?


_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
ヒフミ
会議室デビュー日: 2004/03/30
投稿数: 16
投稿日時: 2004-04-22 20:44
諸農様

いつもありがとうございます。

教えて頂いたURLのソースを参考に、列単位、行単位、セル単位の全ての変更が可能になりました。

ここまで丁寧なソースを教えて頂いて、おこがましいのですが、
行単位で色を変更する方法として、もう一歩踏み込んだ質問をさせてください。

(本来なら教えて頂いたソースを元に自分で汎用すべきなのかもしれませんが、そこまでの知識がないので・・申し訳ありません!・・

例)

 |NAME| STATUS |  
----------------------------
1|A | on |
2|B | off |
3|B | on |
4|A | off |


というテーブルデータをDataGridに読み込む際に、行単位で色を指定する方法として3パターンに分けたいと考えています。

条件1: NAME = A && STATUS = on ならば 青色行
条件2: NAME = B && STATUS = on ならば 緑色行
条件3: NAME = A && STATUS = off || NAME = B&& STATUS = off ならば 赤色行

という形でそれぞれの値を確認した上で色を設定したいのですが、こういうケースの場合にはどのように処理を行えばよいのでしょうか?

拙い説明で申し訳ありませんが、ご教授いただければ幸いです。

スキルアップ/キャリアアップ(JOB@IT)