吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1229|回复: 2
收起左侧

[求助] winform ListBox选中项前景色

  [复制链接]
遗憾迟香 发表于 2021-5-22 12:34
本帖最后由 遗憾迟香 于 2021-5-22 12:46 编辑

我想要的效果:无边框,无背景色,选中项前景色为橙色,未选中项前景色为黑色
image.png
可是我的绘制方法只要选择过的项都会变色
image.png
我的代码:
[C#] 纯文本查看 复制代码
        private void lrcView_DrawItem(object sender, DrawItemEventArgs e)
        {
                StringFormat strFmt = new System.Drawing.StringFormat();
                if (e.Index == lrcView.SelectedIndex)
                {
                    e.Graphics.DrawString(lrcView.Items[e.Index].ToString(), e.Font, new SolidBrush(Color.Orange), e.Bounds, strFmt);
                }
                else
                {
                    e.Graphics.DrawString(lrcView.Items[e.Index].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[e.Index].ToString(), e.Font, new SolidBrush(Color.Orange), e.Bounds, strFmt);
    }
    else
    {
        e.Graphics.DrawString(lrcView.Items[e.Index].ToString(), e.Font, new SolidBrush(Color.Black), e.Bounds, strFmt);
    }
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 02:40

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表