我有一个带有多个项目的 ListBox
,同时我还有一个 connect 按钮。在连接按钮的 _Click
事件中,我正在将每个项目连接到服务器。
我想在连接按钮被点击后更改项目的文本颜色为绿色。对于那些没有点击连接按钮的项目,将文本颜色更改为红色,反之亦然。
使用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);
}
OwnerDraw
而不是DrawMode
。此外,请注意,与ListBox不同,ListView为DrawItem
和DrawSubItem
引发单独的事件。 - dotNET
host_listbox_new.DrawMode = OwnerDrawFixed; host_listbox_new.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.listBox1_DrawItem);
- Ankur