在把 ListBox 的 DrawMode 设置为 DrawMode.OwnerDrawVariable
以下是 DrawItem 方法中的代码:if(e.Index >= 0)
{
   e.DrawBackground();
   e.DrawFocusRectangle();
   string str = Convert.ToString(listBox1.Items[e.Index]);
   bool selected = (e.State & DrawItemState.Selected) == DrawItemState.Selected ? true : false;
   Brush br = selected ? Brushes.White : Brushes.Black;
   e.Graphics.DrawString(str, listBox1.Font, br, e.Bounds);
}这面的代码在一般情况下没有任何的问题,但当把 listBox 的 SelectedMode 设置为 SelectionMode.None 时,这下就出问题了。
在不自绘的 listBox 中,如果把 SelectedMode 设置为 None 时,listBox 不能选定任何的行选定背景,只会有点击的项上绘制一个焦点框, SelectedIndex 返回 -1.但在使用自绘时,每点击一项都会绘制背景,而且以前点击的项的背景也会绘制出来,不知道是不是.NET中的一个 BUG,还是代码哪里出了问题?不知道说的清不清楚,大家可以自己试一下