【问题标题】:Form flickers upon Text Label update文本标签更新时表单闪烁
【发布时间】:2012-11-17 17:19:52
【问题描述】:

我完全清楚这是一个被问过很多次的问题,但我还没有找到完美的解决方案。

问题:我有一个简单的 Windows 窗体,其中包含几个表格面板、一个文本区域和一个用作字符计数器的文本标签 - 非常简单的设置。但是,当我开始更新该字符计数器文本标签时,我在其中一个文本区域中输入的每个字符都会闪烁(即闪烁白色)。

我读过的最常见的解决方案是使用各种缓冲和渲染参数。我已经修改了失效、双缓冲参数the series of ControlStyle parameters,以及其他一些甚至strange ways of forcing double-buffering

在所有这些解决方案中,只有2 似乎有明显的改进。但是,如果我只是将手指放在某个键上,最终仍会出现闪烁。所以我正在寻找的是一个更好的解决方案,可以完全消除闪烁。由于字符计数器是一个基本概念,我相信它是一个具有已知解决方案的热门领域。

【问题讨论】:

  • 你能发布你到目前为止的代码吗?
  • 您是否在面板中使用背景图片?
  • 如何更新标签?你在使用 BGWorker 吗?
  • 切换到 WPF 应用程序 ... win 表单会闪烁 .. win 表单的双缓冲和其他东西将无济于事!这是一个事实接受它。它主要是因为图像。如果您使用的是图像,请使用位图格式!
  • 不,我没有使用背景图片。不,我不能发布代码,因为它是保密协议下的私人内容。我通过简单地更改其文本属性来更新标签。不,我不能切换到 WPF,因为它不是我的个人项目

标签: c# winforms textlabel


【解决方案1】:

在我需要帮助的时候,我会更改我的代码以隐藏其中包含的私人详细信息。

如果这不可能,我会建议以下方法来减少闪烁:

在击键之间使用计时器(注册 keyup 事件)。如果在 500 毫秒内没有发生 keyup 事件,则允许 textchanged 事件继续进行,否则,什么也不做。

【讨论】:

    猜你喜欢
    • 2020-02-29
    • 2017-08-06
    • 2015-02-25
    • 1970-01-01
    • 1970-01-01
    • 2015-03-18
    • 2011-04-18
    • 2010-09-10
    相关资源
    最近更新 更多