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);
}
} 在绘制的时候加一条命令,把之前选择的那句的颜色改回去不就行了? ```
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]