ListView 控件中的闪烁(OwnerDraw、Virtual)

2024-01-03

这个问题可能被认为是后续问题使用ownerdraw和virtualmode在列表视图中闪烁 https://stackoverflow.com/questions/938896/flickering-in-listview-with-ownerdraw-and-virtualmode.

我有一个ListView控制在Virtual mode我尝试执行自定义绘图。项目渲染是通过以下方法重写完成的:

protected override void OnDrawItem(DrawListViewItemEventArgs eventArgs) 

正如所引用的问题中提到的,自定义绘图会在鼠标悬停事件上引入闪烁。调试器告诉我这是由于过量被触发的自定义绘制事件。


现在 - 所引用问题的公认答案告诉我们:

这是 .NET 的 ListView 中的一个错误,您无法通过以下方式绕过它 双缓冲。

  • So, 该信息的可靠性如何?那真的是一个bug?或者也许我们只是尝试切断一部分消息并希望它不会改变可见的行为?

  • 这是真的吗?如果我让我的主人为ListView in Virtual Mode,我可以压制这些Custom Draw事件并且只执行我的绘图WM_PAINT或者,也许这在某些情况下是不正确的?

  • 申请的前提条件是什么System.Windows.Forms控制能够完成所有的绘画WM_PAINT不改变它的初始行为?


至少对于OnDrawItem的双缓冲来说,存在bug是不正确的,但它有点愚蠢:有一个受保护的属性可以设置,但需要重写ListView。我创建了这样的类:

public class MyListView : ListView
{
    public MyListView()
        : base()
    {
        DoubleBuffered = true;
    }
}

然后在 MyForm.Designer.cs 文件中,我使用以下行更改 ListView 的实例化:

private ListView myListView;

this.myListView = new MyListView();

OnDrawItem 将发挥作用!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ListView 控件中的闪烁(OwnerDraw、Virtual) 的相关文章

随机推荐

  • JSF 组件中立即=true VS 立即=false

    我正在阅读 Core JavaServer Faces 并且正在研究事件处理 它表示 如果某个组件 比如说按钮 的immediate true 那么当我们单击该按钮时 JSF 生命周期的流程验证和调用应用程序面将提前完成 这是什么意思 任何
  • bash:睡眠进程没有被杀死[重复]

    这个问题在这里已经有答案了 我写了一个简单的 bash 脚本 它除了休眠之外什么也不做 bin bash echo Sleeping sleep 180s 运行脚本后 我看到系统上正在运行两个进程 user 22880 0 0 0 0 12
  • 是否可以通过在页面上获取三个点来校正页面尺寸?

    我正在研究纠正页面 图像 的宽度 高度和角度的逻辑 点r1 r2 r3在正确图像上 点d1 d2 d3是当前图像上的对应点 我尝试了多种方法并最终解决了这个问题 public System Drawing Bitmap CorrectFil
  • Angular.js 内存泄漏,我什么时候应该开始担心

    所以我有一个相当大的应用程序构建在角度上 有很多嵌套状态 很多指令 数据表和东西 我们最近决定切换到完整的单页 而不是只有几个小的单一应用程序部分 比如文章 人员 仪表板以前都是一个小的单页应用程序 所以我开始更多地处理性能 在 Chrom
  • Android 中的模式锁定

    我想在我的应用程序中实现模式锁定 以便用户必须在使用应用程序之前绘制模式 谁能建议我该怎么做 参考这个链接 http haibison github io android lockpattern 我测试了它 这是一个非常好的例子
  • Python-将数据拆分为csv文件中的列

    我的 csv 文件中有数据 看起来像这样导入的 import csv with open Half life csv r as f data list csv reader f 数据将如下所示打印出行 例如data 0 10 2 2 等等
  • Gnuplot 中复数参数的 Bessel J 函数

    我在用gnuplot questions tagged gnuplot用于绘制我的大部分数据和函数 现在 我想绘制带有复数参数的第零类和第一类 Bessel J 函数 功能besj0 and besj1在 gnuplot 中实现 但是 根据
  • 使用 std::deque::iterator (在 C++ STL 中)搜索和删除某些元素

    我在调用以下代码时遇到问题 include
  • 如何剪辑具有平滑边缘的 BackdropFilter?

    我想申请一个背景滤镜在 Flutter 中的图像上 因此 我使用以下方法来应用过滤器 如颤振文档 https api flutter dev flutter widgets BackdropFilter class html import
  • WPF如何优化布局/渲染周期?

    WPF 如何在高度不稳定的应用程序中优化布局 渲染周期 例如 假设我快速连续两次使自定义控件无效 它会渲染两次吗 当数据 属性更新速率快于主渲染速率时是否存在性能问题 根据我的经验 我可以说不 如果速度足够快 它不会渲染两次 我不是 100
  • 如何找出matlab中匹配两条曲线的比例因子?

    I have two data sets obtained at different days The results I got from two different data sets have similar shape but di
  • 读取单词序列并将其添加到向量中

    我最近买了一个C 入门 https rads stackoverflow com amzn click com 0321714113并遇到了一个问题 我必须使用以下方式读取单词序列cin并将值存储在vector 在遇到不寻常的问题后 我发现
  • PowerShell Invoke-Sqlcmd 切换到 sqlps 会话

    我正在 PowerShell ISE 中编写脚本 并使用 Invoke Sqlcmd 执行命令后 Powershell 会话切换到 sqlps 会话 PS SQLSERVER gt 我无法第二次执行脚本 我必须退出 PowerShell I
  • 使用变量初始化数组时出现分段错误

    这是我发布的第一个问题 如果我有任何失礼 很抱歉 Using C 在我的程序中我创建了一个全局变量指针 double correlationData 在 main 中 我创建了这个局部变量 int arrayLength 0 在 main
  • C 中的数学常数 PI 值

    计算 PI 值是复杂的问题之一 维基百科讨论了近似值 http en wikipedia org wiki Approximations of CF 80完成了它并表示很难准确计算 PI C如何计算PI 它是每次都计算它还是使用不太准确的固
  • R/ RStudio - 安装开发工具失败?

    我正在尝试安装devtools在我的 RStudio 中 但我收到很多错误 installing source package curl package curl successfully unpacked and MD5 sums che
  • Docker for windows 在尝试查看设置时挂起[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我已经安装了适用于 Windows 的 Docker 桌面 Windows 10 上的 docker 19 0 3 当我进入设置时 它会因
  • 如何从 Microsoft Azure 移动服务中的表读取数据并将其放入我的应用程序中?

    我正在使用 Xamarin Studio 和 Microsoft Azure 移动服务 我正在尝试读取放入 Microsoft Azure 移动服务表中的数据并将其显示在我的应用程序中 我遵循了 Azure 网站上的所有教程 但我似乎无法找
  • 无法更改/注释内容

    我正在尝试使用 iTextSharp 更改某些 PDF 注释中的文本 这是我的代码 void changeAnnotations string inputPath string outputPath PdfReader pdfReader
  • ListView 控件中的闪烁(OwnerDraw、Virtual)

    这个问题可能被认为是后续问题使用ownerdraw和virtualmode在列表视图中闪烁 https stackoverflow com questions 938896 flickering in listview with owner