我有一个 listview 控件显然有许多 listviewitems,每当重新绘制控件时,鼠标“悬停”的项目会失去它的背景颜色(即它是白色的)。
一旦再次绘制项目并且光标不在其上,则恢复正确的背景颜色。
有谁知道为什么会发生这种情况以及如何阻止它?
任何帮助,将不胜感激
对此进行扩展并希望提供更多背景信息....
它发生在 Windows 7、.NET 3.5 上(尽管当项目也针对 4.0 时也发生了这种情况)。我的开发计算机上的主题是 Viao Theme 5,但它也发生在我的另一台具有默认 Windows 7 主题的机器上。
列表视图是这样实例化的......
this.PlaylistTrackList.Cursor = System.Windows.Forms.Cursors.Hand;
this.PlaylistTrackList.Dock = System.Windows.Forms.DockStyle.Fill;
this.PlaylistTrackList.FullRowSelect = true;
this.PlaylistTrackList.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
this.PlaylistTrackList.LabelWrap = false;
this.PlaylistTrackList.Location = new System.Drawing.Point(4, 4);
this.PlaylistTrackList.Margin = new System.Windows.Forms.Padding(4);
this.PlaylistTrackList.MultiSelect = false;
this.PlaylistTrackList.UseCompatibleStateImageBehavior = false;
this.PlaylistTrackList.View = System.Windows.Forms.View.Details;
假设有 5 个列表视图项目,A、B、C、D 和 E。如果项目 BC 和 D 的背景颜色属性为红色,则没有选择任何内容,也不会选择任何内容。当列表视图控件由于某种原因被重绘并且光标碰巧在任何项目 BC 或 D 上时,该项目被绘制为白色背景色,而不是应有的红色。但是,一旦鼠标没有再次悬停在该项目上并且其重绘将返回为红色。
无论“真实”背景颜色属性如何,我如何才能停止它总是用白色背景绘制光标所在的项目?