遗憾迟香 发表于 2021-5-22 12:34

winform ListBox选中项前景色

本帖最后由 遗憾迟香 于 2021-5-22 12:46 编辑

我想要的效果:无边框,无背景色,选中项前景色为橙色,未选中项前景色为黑色

可是我的绘制方法只要选择过的项都会变色

我的代码:
      private void lrcView_DrawItem(object sender, DrawItemEventArgs e)
      {
                StringFormat strFmt = new System.Drawing.StringFormat();
                if (e.Index == lrcView.SelectedIndex)
                {
                  e.Graphics.DrawString(lrcView.Items.ToString(), e.Font, new SolidBrush(Color.Orange), e.Bounds, strFmt);
                }
                else
                {
                  e.Graphics.DrawString(lrcView.Items.ToString(), e.Font, new SolidBrush(Color.Black), e.Bounds, strFmt);
                }
      }

田田爱崽崽 发表于 2021-5-22 12:36

在绘制的时候加一条命令,把之前选择的那句的颜色改回去不就行了?

cube 发表于 2021-5-23 14:17

```
        StringFormat strFmt = new System.Drawing.StringFormat();
        lrcView.ClearSelected();
        if (e.Index == lrcView.SelectedIndex)
        {
                e.Graphics.DrawString(lrcView.Items.ToString(), e.Font, new SolidBrush(Color.Orange), e.Bounds, strFmt);
        }
        else
        {
                e.Graphics.DrawString(lrcView.Items.ToString(), e.Font, new SolidBrush(Color.Black), e.Bounds, strFmt);
        }
```
页: [1]
查看完整版本: winform ListBox选中项前景色