gpt4 book ai didi

c# - 在 Winforms 中更改 ListBox 的 "selected"颜色?

转载 作者:行者123 更新时间:2023-11-30 13:15:10 26 4
gpt4 key购买 nike

当您在 Windows 窗体的 listbox 中选择某些内容时,如何更改难看的蓝色?我能够找到的所有解决方案要么包括重新创建整个控件,要么只使用 WPF。有什么办法可以在 WinForms 中实现吗?

最佳答案

将 listBox 的 DrawMode 设置为 OwnerDrawFixed 并订阅 DrawItem 事件:

private void listBox_DrawItem(object sender, DrawItemEventArgs e)
{
e.DrawBackground();
Graphics g = e.Graphics;
Brush brush = ((e.State & DrawItemState.Selected) == DrawItemState.Selected) ?
Brushes.Red : new SolidBrush(e.BackColor);
g.FillRectangle(brush, e.Bounds);
e.Graphics.DrawString(listBox.Items[e.Index].ToString(), e.Font,
new SolidBrush(e.ForeColor), e.Bounds, StringFormat.GenericDefault);
e.DrawFocusRectangle();
}

您可以通过检查事件参数的 e.State 属性来确定绘图项的状态。如果状态为 Selected,则使用您喜欢的任何画笔(例如红色)填充项目行。

关于c# - 在 Winforms 中更改 ListBox 的 "selected"颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13675006/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com