动态着色列表视图,但只有一列是要着色的文本

时间:2015-06-05 14:58:22

标签: vb.net winforms listview

我将listview用于我的winform并遇到了一个问题,一旦控件失去焦点而你看不到它,突出显示的颜色很浅。该文本未显示在第二列中。

我发现一个博客显示您可以自己着色并让最后选择的项目以您想要的颜色显示。

OwnerDraw设置为false时,这是我的列表视图:

enter image description here

你可以看到第二栏。

OwnerDraw设置为true时,这就是它的样子:

enter image description here

使用此代码时:

  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有关,但我不确定。

谁能告诉我我做错了什么?

0 个答案:

没有答案