- PR -

ListBoxで行ごとに色を変えたい

1
投稿者投稿内容
さくら
常連さん
会議室デビュー日: 2005/09/12
投稿数: 31
投稿日時: 2007-05-11 11:37
VB.Net2003を使用しています。

あるディレクトリに対し、そこに含まれているサブディレクトリとファイルの一覧を取得して、ListBoxに表示しています。
ListBoxに登録するための
コード:
    Public Class ItemList
        Private mItemVal As String(ディレクトリ・ファイル名を格納)
        Private mIsFile As Boolean(ItemValがファイル名かどうか)


というクラスを作成し、
コード:
        Public Overrides Function ToString() As String
            Return mItemVal
        End Function


としてListBox上ではmItemValを表示させています。

ここで、更にmIsFileの値によってListBoxに表示させるときの色を変えたいのですが
Fontプロパティでは全体の色が変わってしまい、うまくいきません。
ListBoxでこのような挙動は無理なのでしょうか?
その場合、何か回避策はありますか?
よねKEN
ぬし
会議室デビュー日: 2003/08/23
投稿数: 472
投稿日時: 2007-05-11 11:55
引用:

さくらさんの書き込み (2007-05-11 11:37) より:
ここで、更にmIsFileの値によってListBoxに表示させるときの色を変えたいのですが



オーナードローでできます。
「ListBox オーナードロー」などで検索してみてください。
さくら
常連さん
会議室デビュー日: 2005/09/12
投稿数: 31
投稿日時: 2007-05-11 13:06
よねKENさん、早速のコメントどうもありがとうございます。
教えていただいたオーナードローで検索してみた結果、ListBox.DrawItemイベントで
mIsFileごとにBrushを指定してe.Graphics.DrawString で実現できました。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2007-05-11 18:40
あ、終わってる...

自分で作るより、同じことを考えた人がいないか、探す方が早いし簡単だと思います。
CodeProject というサイトにあります。colorlistbox で検索してみてください。

http://www.codeproject.com/cs/combobox/ColorListBoxIcons.asp


[ メッセージ編集済み 編集者: Jitta 編集日時 2007-05-14 22:05 ]
1

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