トップ回答者
ListBoxの各行を違った色で表示することは可能ですか?

質問
回答
-
項目の文字の色を変えたいListBoxをListBox1とします。
デザイン画面でListBox1を選んで
プロパティウィンドウで
DrawMode を探して OwnerDrawFixedにしますプロパティウィンドウで
イベント(雷マーク)をクリック
DrawItemを探しての右のセルをダブルクリックしますコードに自動で
ListBox1_DrawItemメソッドが生成されるのでその中にDim brush1 As Brush = New SolidBrush(Color.Red)
e.Graphics.DrawString(ListBox1.Items(e.Index).ToString(), e.Font, brush1, e.Bounds, StringFormat.GenericDefault)Color.Redの部分をe.Index等によって変更すれば項目によって文字色が変わります。
MSDNライブラリ
ListBox.DrawItem イベント
にもサンプルがあります。
すべての返信
-
項目の文字の色を変えたいListBoxをListBox1とします。
デザイン画面でListBox1を選んで
プロパティウィンドウで
DrawMode を探して OwnerDrawFixedにしますプロパティウィンドウで
イベント(雷マーク)をクリック
DrawItemを探しての右のセルをダブルクリックしますコードに自動で
ListBox1_DrawItemメソッドが生成されるのでその中にDim brush1 As Brush = New SolidBrush(Color.Red)
e.Graphics.DrawString(ListBox1.Items(e.Index).ToString(), e.Font, brush1, e.Bounds, StringFormat.GenericDefault)Color.Redの部分をe.Index等によって変更すれば項目によって文字色が変わります。
MSDNライブラリ
ListBox.DrawItem イベント
にもサンプルがあります。 -
IIJIMAS さんご教示ありがとうございます。
やっとわかりました。イベント発生のタイミングが難しいですね。
あとでまとめて、処理してくるので、itemindexを操作すると変な結果になってしまいました。
でも、Dim brush1 As Brush = New SolidBrush(Color.Red)
e.Graphics.DrawString(ListBox1.Items(e.Index).ToString(), e.Font, brush1, e.Bounds, StringFormat.GenericDefault)これをやると選択項目を反転することをしなくなってしまったので、これはこれでまた新たな問題が生じて
しまいました。