如何改变ListBox中项目的文本颜色

4

我有一个带有多个项目的 ListBox,同时我还有一个 connect 按钮。在连接按钮的 _Click 事件中,我正在将每个项目连接到服务器。

我想在连接按钮被点击后更改项目的文本颜色为绿色。对于那些没有点击连接按钮的项目,将文本颜色更改为红色,反之亦然。


答案在:https://dev59.com/42w05IYBdhLWcg3w_W1O "C# : change listbox items color" - Bogusz Michałowski
我已经编写了DrawItem事件,但是不确定从哪里调用这两个.host_listbox_new.DrawMode = OwnerDrawFixed; host_listbox_new.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.listBox1_DrawItem); - Ankur
你可以查看以下主题: https://dev59.com/42w05IYBdhLWcg3w_W1O - Ahmed Fantar
1个回答

4

使用ListBox的所有者绘制模式,这将解决您的问题。在设计模式下选择您的ListBox,将DrawMode属性更改为OwnerDrawFixed。现在附加一个处理程序到DrawItem事件,然后使用Graphics类的方法以任何颜色或字体绘制您的字符串。在DrawItem中需要做的示例是:

private void listBox1_DrawItem(object sender, DrawItemEventArgs e)
{
    e.DrawBackground();
    e.Graphics.DrawString(listBox1.Items[e.Index].ToString(), listBox1.Font, Brushes.Green, e.Bounds);
}

如何将处理程序附加到DrawItem事件并使用Graphics类的方法? - Ankur
在列表框的属性编辑器中,双击动作标记中的事件。 - TaW
@MaxCarroll:是的。但是那里的属性名是OwnerDraw而不是DrawMode。此外,请注意,与ListBox不同,ListView为DrawItemDrawSubItem引发单独的事件。 - dotNET

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接