如何更改下拉组合列表框中某些项目的颜色?我有一个程序从文件加载列表中的项目,我希望由开关(文件中其他字段的数据)确定的某些项目是不同的颜色。列表将被排序。
例如 - 加载了20个人的列表,其中3个人的名字会改变为不同的颜色。如何在代码中完成?
ForeColor属性无法正常工作...它会更改列表中的所有项目。
答案 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