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

TableLayoutPanelで1行ごとに背景色を変えるには

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

 こんにちは。

 1つお聞きします。 

 VB2005のTableLayoutPanelで1行ごとに
背景色を変えることはできますか?
2007/09/22(Sat) 15:12:41 編集(投稿者)

やっと事は無いですが、簡単に出来なければ、
上にパネルとか乗っけたらだめですか?

けどオーナードローでなんとか背景の描画が出来ない事も無い気も
しますが、ここらへんは私なんかよりもっと詳しい人がいると思うので
パスします。
(ごめんなさい、私の知識がたりないのです)

このHPにも似たような事してるのがあったような気もします。

以上

追記

http://www.microsoft.com/japan/msdn/thisweek/10lines/extra_bottoncontrol.aspx

コントロールの色をグラデーションに設定するようなプログラムのサンプルです。
マイクロソフトの「10 行でズバリ!! 」シリーズです。
このまま使える事はないでしょうが、サンプルにでも。
■No20547に返信(じゅでさんの記事)

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

簡単にはパネルを1つずつ貼るしかないですよね。
■No20547に返信(じゅでさんの記事)
> このHPにも似たような事してるのがあったような気もします。

たぶんこれのことですね。

TableLayoutPanelのセルを独自に描画する
http://dobon.net/vb/dotnet/control/tlcellpaint.html
■No20556に返信(管理人さんの記事)
> ■No20547に返信(じゅでさんの記事)
 ご紹介ありがとうございます。
解決済み!
■No20567に返信(WONさんの記事)
> ■No20556に返信(管理人さんの記事)
>>■No20547に返信(じゅでさんの記事)
 
 恐れ入ります。

'一つおきにセルの背景色を変更する
If (e.Column Mod 2 = 1) Xor (e.Row Mod 2 = 1) Then
e.Graphics.FillRectangle(Brushes.LightSkyBlue, e.CellBounds)
End If

1つおきではなく、1行おきならどうのようになりますか?
> '一つおきにセルの背景色を変更する
> If (e.Column Mod 2 = 1) Xor (e.Row Mod 2 = 1) Then
> e.Graphics.FillRectangle(Brushes.LightSkyBlue, e.CellBounds)
> End If
>
> 1つおきではなく、1行おきならどうのようになりますか?

行だけならば、e.Rowの部分だけでOKでしょう。ものすごく簡単なことだと思うのですが、どのあたりが分かりませんか?
■No20569に返信(管理人さんの記事)
すいません、単純な AND , OR , + , - , * 等しか使ったことが
ありませんでしたので、どうしてここでXORを使っているのが
解りませんでした。
解決済み!

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