- PR -

Listboxにテーブルをセットした際にテーブルの情報に合わせて文字や背景色を変更する方法

1
投稿者投稿内容
TAIMEI
常連さん
会議室デビュー日: 2003/07/22
投稿数: 42
投稿日時: 2008-01-08 12:54
下記のような形でテーブルをリストボックスに表示させているのですが、
その時にテーブルの別のカラムにある『Status』や『priority』のカラムの情報を利用して背景色を変えたりフォントを強調(太文字)にしたりしたいのですが、
このようなことはできるのでしょうか?
やはり、for文で回すしかないものでしょうか?
また、一度DataViewを作成したうえでListBoxに取り込んでます。
DataView上でいろいろと制御できればいいなぁなどと考えてました。

例文

//listboxに目標を表示させる
DataView.Table = Dataset.Tables[tablename];

Listcontrol.DisplayMember = "Title";
Listcontrol.ValueMember = "ID";
Listcontrol.DataSource = dv;
Listbox.Refresh();

データセットの内容
ID Title  Status priority 
0 リンゴ  3   1
1 みかん  2   2
2 スイカ  3   3
3 イチゴ  1   1

やりたいこと
・Statusが3のものの背景色を灰色にする
・priorityが3のもののフォントを太文字にする

補足
Datatableを直接Listboxにいれた方が速度が速いと思い、できればfor文で回すなどはしたくないと考えてます。

かずくん
ぬし
会議室デビュー日: 2003/01/08
投稿数: 759
お住まい・勤務地: 太陽系第三惑星
投稿日時: 2008-01-08 15:54
私も一度はチャレンジしてみましたが、方法を見つけることが出来ず、DataGridViewに逃げました。

開発環境が掛かれていないので分からないですが、Visual Studio 2005以降なら、DataGridViewが使えるので、試してみては?
ただし、背景に関しては、
C#2005 DataGridViewカラムに色をつけたい(atmarkit.co.jp)
のスレッドで提示された問題を解決する必要がありそうです。
文字スタイル、色については、XPスタイルにしても、正しく反映してるっぽいので、たぶんだいじょぶそう。
TAIMEI
常連さん
会議室デビュー日: 2003/07/22
投稿数: 42
投稿日時: 2008-01-08 19:30
かずくん様

やはりそうでしたか・・・。
無念です。
しかし、貴重な情報ありがとうございました。

1

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