Visual Basic 2010 - 更改列表框中的文本颜色

时间:2014-12-18 19:58:44

标签: vb.net

如何更改下拉组合列表框中某些项目的颜色?我有一个程序从文件加载列表中的项目,我希望由开关(文件中其他字段的数据)确定的某些项目是不同的颜色。列表将被排序。

例如 - 加载了20个人的列表,其中3个人的名字会改变为不同的颜色。如何在代码中完成?

ForeColor属性无法正常工作...它会更改列表中的所有项目。

1 个答案:

答案 0 :(得分:0)

您可以拥有者绘制项目,然后指定项目的颜色,例如:

Public Class Form1

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        ComboBox1.DrawMode = DrawMode.OwnerDrawFixed

        Dim i As New Item()
        i.ItemColor = Color.Red
        i.Text = "Hello"

        ComboBox1.Items.Add(i)

        i = New Item()
        i.ItemColor = Color.Blue
        i.Text = "World"

        ComboBox1.Items.Add(i)

    End Sub


    Private Sub ComboBox1_DrawItem(sender As Object, e As DrawItemEventArgs) Handles ComboBox1.DrawItem

        If e.Index < 0 Then Return

        Dim i As Item
        i = TryCast(ComboBox1.Items(e.Index), Item)

        If i IsNot Nothing Then
            e.Graphics.DrawString(i.Text, e.Font, New SolidBrush(i.ItemColor), e.Bounds)
        End If
    End Sub
End Class

Public Class Item
    Public Text As String
    Public ItemColor As Color
End Class