ヘッダー

VB.NET2002対応 VB.NET2003対応 VB2005対応

 

特定の項目の文字の色を変える

以下の例は3番目の項目を赤くする。

VB.NET2002対応 VB.NET2003対応 VB2005対応

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    ListBox1.DrawMode = DrawMode.OwnerDrawFixed

End Sub

Private Sub ListBox1_DrawItem(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles ListBox1.DrawItem

    If e.Index = -1 Then
       
Exit Sub
   
End If

    e.DrawBackground()

    Dim myBrush As Brush

    If e.Index = 2 Then
       
myBrush = Brushes.Red
   
Else
       
myBrush = New SolidBrush(ListBox1.ForeColor)
    End
If

    e.Graphics.DrawString(ListBox1.Items(e.Index), e.Font, myBrush, New RectangleF(e.Bounds.X, e.Bounds.Y, e.Bounds.Width, e.Bounds.Height))

    e.DrawFocusRectangle()

End Sub

メモ:このサンプルではEnabled = Falseの場合、およびSelectionMode = Noneの場合の配慮がされていません。