- PR -

DataGridのセル毎にFontを変えたい。

1
投稿者投稿内容
toppo
ベテラン
会議室デビュー日: 2003/10/28
投稿数: 89
お住まい・勤務地: 東京・池袋
投稿日時: 2003-10-30 18:16
toppoです。
DataGridのセル毎にFontを変えたいのですが、
実現方法はありますでしょうか?

知恵を貸して下さい。
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2003-10-31 01:09
こんにちわ。諸農です。

セル単位ですか。。ちょっと面倒くさいかも。
列単位であれば、DataGridColumnStyleクラスからを継承したクラスを作るとか、DataGridTextBoxColumnクラスからの派生クラスでPaintメソッドをオーバーライドするとかが考えられますが。。

GDNJですが、参考になるかもしれません。
http://www.gdncom.jp/general/bbs/ShowPost.aspx?PostID=2942
http://www.gdncom.jp/general/bbs/ShowPost.aspx?PostID=2802

ではでは(^^)/
_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
toppo
ベテラン
会議室デビュー日: 2003/10/28
投稿数: 89
お住まい・勤務地: 東京・池袋
投稿日時: 2003-10-31 11:10
こんにちは、toppoです。

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

DataGridTextBoxColumnクラスからの派生クラスでPaintを
オーバーライドする方法は考えたのですが、
Paintメソッドをオーバーライドする事で可能ですか?
いまいち方法が分からなかったのですが。

何かヒントをもらえないでしょうか?
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2003-10-31 13:20
こんにちわ。諸農です。

コード:
protected override void Paint(
    Graphics g,
    Rectangle bounds,
    CurrencyManager source,
    int rowNum,
    Brush backBrush,
    Brush foreBrush,
    bool alignToRight)
{
    object obj = GetColumnValueAtRow(source,rowNum);
    if (obj != DBNull.Value)
    {
        string str = (string)obj;
        foreBrush = new SolidBrush(Color.Red);
        backBrush = new SolidBrush(Color.Yellow);
        base.Paint(g,bounds,source,rowNum,backBrush,foreBrush,alignToRight);
        g.FillRectangle(backBrush,bounds);
        g.DrawString(str,new Font("DFGPOP1体W9",12),foreBrush,bounds);
    }
}



編集中のフォント変更についてはわかりません。

ではでは(^^)/

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

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
toppo
ベテラン
会議室デビュー日: 2003/10/28
投稿数: 89
お住まい・勤務地: 東京・池袋
投稿日時: 2003-11-04 16:03
どうもありがとうございました。

実現することができましたので報告します。

ありがとうございました。
1

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