在列表框特定项目的更改颜色包含DRAWITEM特定字符串(Change color of speci

2019-08-21 12:57发布

我想改变项目的含有特定字符串的颜色

Private Sub ListBox2_DrawItem(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles ListBox2.DrawItem
    e.DrawBackground()
    If DrawItemState.Selected.ToString.Contains("specific string") Then
        e.Graphics.FillRectangle(Brushes.LightGreen, e.Bounds)
    End If

    e.DrawFocusRectangle()

这是我的代码,但不工作

Answer 1:

好吧,首先你需要设置列表框的属性DrawMode为“OwnerDrawFixed”,而不是正常。 否则,你永远不会得到DrawItem事件火灾。 当做到这一点它是所有非常直截了当。

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

    If ListBox1.Items(e.Index).ToString() = "herp" Then

        e.Graphics.FillRectangle(Brushes.LightGreen, e.Bounds)
    End If
    e.Graphics.DrawString(ListBox1.Items(e.Index).ToString(), e.Font, Brushes.Black, New System.Drawing.PointF(e.Bounds.X, e.Bounds.Y))
    e.DrawFocusRectangle()
End Sub

您将有选择是否用不同的颜色来碰这个了。 但是,这应该足够让你继续去努力。 你接近,记住这一点。 :)



文章来源: Change color of specific item on listbox that contains a specific string on drawitem