C# 包含大量项目的ListView在绘制方面存在问题

C# 包含大量项目的ListView在绘制方面存在问题,c#,winforms,listview,.net-4.0,paint,C#,Winforms,Listview,.net 4.0,Paint,我正在用数百个项目填充几个Windows窗体ListView控件,但是当我调整列的大小时,ListView在重画内容时会有很多口吃 我知道在调整列的大小时会出现一些口吃,但所期望的效果将相当于Windows资源管理器在“详细信息”视图中处理列大小调整的方式。在Windows资源管理器中调整列的大小时,它似乎只会使要调整大小的列右侧的列略微停顿 是否有办法防止或减少口吃,或者这是预期的行为?如King King所述,在控件上启用双缓冲解决了问题: typeof(Control).GetPrope

我正在用数百个项目填充几个Windows窗体
ListView
控件,但是当我调整列的大小时,
ListView
在重画内容时会有很多口吃

我知道在调整列的大小时会出现一些口吃,但所期望的效果将相当于Windows资源管理器在“详细信息”视图中处理列大小调整的方式。在Windows资源管理器中调整列的大小时,它似乎只会使要调整大小的列右侧的列略微停顿


是否有办法防止或减少口吃,或者这是预期的行为?

如King King所述,在控件上启用双缓冲解决了问题:

 typeof(Control).GetProperty("DoubleBuffered", BindingFlags.NonPublic |
 BindingFlags.Instance).SetValue(yourListView, true, null);

它们是自定义列表视图还是标准列表视图?它们是标准的列表视图控件。它们有多少列?嗯,我认为默认的
ListView
可以帮助您很好地显示所有内容。它不瘦。顺便说一句,我认为
Windows资源管理器中使用的
ListView
可能不同于
Winforms
中的
ListView
,它可能是一些
wpflistview
,具体取决于Windows的版本。您也可以尝试通过此代码
typeof(Control.GetProperty)(“双缓冲的”,BindingFlags.NonPublic | BindingFlags.Instance).SetValue(yourListView,true,null)@KingKing Windows不受管理,它不使用任何.Net组件。对于温迪夫来说,.Net是敌人。这都是政治问题,而不是技术问题。没有Windows没有任何WPF组件,也没有WINFras,他们使用的东西叫做DirectUI,它是C++ DirectX硬核的东西。