2013-01-03 48 views
0

我有一個圖片框。這個picturebox用於地圖。Windows窗體中的用戶控件刷新

地圖有elemenst它。例如,一個顯示器。

我從windows用戶控件創建「顯示」。該用戶控件具有「面板,面板上有3個圖片盒」。

任何用戶在屏幕上創建「顯示」並將其保存爲一個圖片框(地圖)的控件。當任何用戶保存數據時,它將被保存到數據庫中。

在每一秒鐘,我看着圖片框(地圖),控制它的數據和數據庫。如果「顯示」改變了它的狀態(如節目去或停止,種類的交通標誌),然後我找到了改變的並刷新它。

現在的問題是:如果我刪除顯示(用戶控件)而不是將其再次添加到地圖(圖片框)控件,則效果很好。在地圖上看到更新的「顯示」。但是,任何用戶都可以看到該過程,因爲顯示屏會消失數毫秒並閃爍。

如何刷新此用戶控件而不刪除並再次添加過程,有沒有一種方法來刷新它的某種方式?

+0

總之,你不能,WPF ftw。 –

+0

我很抱歉,但我不明白:「ftw。」 –

+0

「爲勝利」^^ – Carsten

回答

2

要抑制閃爍,可以通過告訴窗口在閃爍生成操作之前掛起父級控件繪畫作弊,然後繼續進行操作。檢查this SO question了。

我經常在我的自定義控件上進行操作,效果很好。您甚至可以將第一個答案中的「SuspendDrawing」和「ResumeDrawing」靜態方法作爲Control類的擴展方法添加。

+0

非常感謝你的回答,完美的結果:) –