|
|
1
11
我也遇到了类似的问题,尽管是用一个所有者绘制的列表框。我的解决方案是使用BufferedGraphics对象。如果你的清单不是由车主绘制的,你的里程可能会因这个解决方案而异,但也许它会给你一些灵感。 我发现除非我提供TextFormatFlags,否则TextRenderer很难渲染到正确的位置。保存图形转换。另一种方法是使用P/Invoke调用BitBlt,直接在图形上下文之间复制像素。我选择了这两件坏事中较小的一件。
这
|
|
2
2
您可以检查切换到带有复选框的ListView控件是否会改善问题。处理起来并不容易(但是,嘿,WinForms列表框也不是天才之举),我发现它的大小调整行为
我在Win32应用程序中成功地使用了它,但我不知道Forms控件是否添加了一些自己的魔法,使其无法正常工作。 |
|
|
3
0
这过去是通过向控件发送WM_SETREDRAW消息来处理的。
另请参见: WM_SETREDRAW reference at Microsoft 如果其他人在下使用过windows消息。NET,请根据需要更新此帖子。 |
|
4
0
虽然没有解决闪烁的具体问题,但对于此类问题,一种通常有效的方法是缓存列表框项的最小状态。然后通过对每个项目执行一些计算来确定是否需要重新绘制列表框。仅当至少有一个项目需要更新时才更新列表框(当然,还要将此新状态保存在缓存中以供下一个周期使用)。 |