2010-07-01 166 views
4

有沒有人遇到.Net Windows窗體應用程序導致嚴重桌面閃爍的情況?Windows窗體/ DatagridView屏幕閃爍

我有一個Windows窗體應用程序(.Net 3.5,C#)與usercontrol中的datagridview。 有時,在同時運行其他應用程序(我用Louts Notes看到它,但最糟糕的行爲是路透橋站的用戶)時,切換到我的應用程序,然後切換到其他應用程序會導致整個桌面閃爍,凍結所有的用戶交互,從幾秒鐘到接近一分鐘。 (所有使用Windows XP Professional的用戶) 即使網格中有少量數據,也會發生這種情況 我沒有在應用程序中進行任何自定義繪畫,而且我非常確定我的代碼目前沒有在運行,刷新或重新繪製。

我已經啓用了雙緩衝,所以這不是解決方案。

我發現一個有趣的事情(在MS論壇中)是設置窗體的TransparencyKey將有時解決問題。 (專門用於Louts Notes用戶,但不適用於Bridge Station用戶。) 仍然受影響的用戶正在通過在切換到其他應用程序之前將數據輸入後最小化應用程序來解決此問題。 任何想法將不勝感激,因爲我拉我的頭髮在這個。我沒有太多的頭髮開始。

YS

+0

不幸的是,我們在工作中也使用了Lotus Notes,而且我們也有使用雙緩衝的相同問題。好問題!我希望有人會幫助 – Drake 2010-07-05 12:00:35

回答

1

如果從Visual Studio調試,你可以嘗試啓用Framework debuggingTracepoints寫日誌條目輸出窗口出現這種情況時,該技術是用於獲取到的奇怪的WinForms問題底部相當有用。

一旦你找到了一些你認爲會被過度或不必要地調用的東西,你就可以堅持在一個斷點上看看堆棧,看看是什麼導致了問題。

+0

謝謝你的迴應,但我已經確定我的代碼沒有導致這個問題。 – user144133 2010-07-06 14:38:58

0

使用盲人松鼠學校的故障排除,我似乎找到了一個螺母......我的意思是解決方法 - 我把顯示器硬件加速度降到最低(剛好在「無」)。這,一起與設置TransparencyKey,看起來像它解決了我的問題。

歸根結底,雖然這表明顯示驅動程序出現問題(可能是多顯示器特定問題),但也有一個.NET問題,如 1)問題只發生在我的程序運行時。 2)更新測試機器上的驅動程序不能解決問題。