出于我的目的,我正在 4.0 中编写一个 GUI,它以自定义颜色显示我的自定义Instance
对象。ListBox
我已经能够用它们各自的颜色绘制它们,但我想知道是否有办法改变这些颜色。
我已经尝试过每隔几秒钟就清除ListBox
和读取Instance
对象的BackGroundWorker
路线,但是这条路线导致了许多令人头疼的事实,ListBox.selectedIndex
即将更改并将事件发送给我的ListBox_SelectedIndexChanged
事件处理程序。因此,如果可能的话,我想避免这种情况,因为尝试使用线程、锁定、竞争条件、打开和关闭事件处理程序、Invalidargumentexceptions 进行编码是一场噩梦。
我想知道,backGroundWorker 有什么方法可以直观地更新我的颜色,ListBox
而无需添加和重新添加项目来触发事件,如此处DrawItem
所述?
编辑:调用 ListBox.Refresh() 重新绘制列表框中的所有项目,这样做,避免了 selectedIndexChanged 事件处理程序并更新了所有项目的颜色