我将listview用于我的winform并遇到了一个问题,一旦控件失去焦点而你看不到它,突出显示的颜色很浅。该文本未显示在第二列中。
我发现一个博客显示您可以自己着色并让最后选择的项目以您想要的颜色显示。
当OwnerDraw
设置为false时,这是我的列表视图:
你可以看到第二栏。
当OwnerDraw
设置为true时,这就是它的样子:
使用此代码时:
Private Sub lvModelsInfo_DrawItem(ByVal sender As Object, ByVal e As DrawListViewItemEventArgs)
If e.Item.Selected Then
e.Graphics.FillRectangle(New SolidBrush(Color.LightBlue), e.Bounds)
e.Graphics.DrawString(e.Item.Text, ListView1.Font, New SolidBrush(Color.Black), e.Bounds.Location)
Else
e.Graphics.DrawString(e.Item.Text, ListView1.Font, New SolidBrush(Color.Black), e.Bounds.Location)
End If
End Sub
之前我没有和e.Graphics合作过。如果我不得不猜测,我认为它与e.Bounds
有关,但我不确定。
谁能告诉我我做错了什么?