【问题标题】:User Control Refresh in Windows FormWindows 窗体中的用户控件刷新
【发布时间】:2012-12-17 19:30:09
【问题描述】:

我有一个图片框。此图片框用于地图。

地图上有元素。例如,显示器。

我从 Windows 用户控件创建了“显示”。这个用户控件有“一个面板,面板上有 3 个图片框”。

任何用户在屏幕上创建“显示”并将其保存为图片框(地图)的控件。当任何用户保存数据时,它都会保存到数据库中。

每一秒,我都会查看图片框(地图),控制其中的数据以及数据库。如果“显示”改变了它的状态(比如显示去或停止,交通标志的种类),然后我找到改变的状态并刷新它。

现在的问题是:如果我删除显示(用户控件)而不是再次将其添加到地图的(图片框)控件中,它工作得很好。在地图上可以看到更新的“显示”。但是,任何用户都可以看到该过程,因为显示会消失几毫秒,然后像闪烁一样回来。

如何在不删除并重新添加进程的情况下刷新此用户控件,有没有办法以某种方式刷新它?

【问题讨论】:

  • 简而言之,你不能,WPF ftw。
  • 很抱歉,但我听不懂:“ftw.”

标签: c# controls refresh


【解决方案1】:

要抑制任何闪烁,您可以通过告诉 Windows 在您的闪烁生成操作之前暂停父控件绘制,然后再恢复它来作弊。签出this SO question

我经常在我的自定义控件上这样做,而且效果很好。您甚至可以将第一个答案中的“SuspendDrawing”和“ResumeDrawing”静态方法添加为 Control 类的扩展方法。

【讨论】:

    猜你喜欢
    • 2010-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-21
    • 1970-01-01
    • 2016-05-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多