我試圖在面板上繪圖時避免閃爍。 我已經發現一個好的解決方案首先從面板類派生類嘗試從C#中的類Panel導出類時出現錯誤
public class DoubleBufferedPanel : Panel
{
public DoubleBufferedPanel()
{
this.SetStyle(ControlStyles.AllPaintingInWmPaint |
ControlStyles.OptimizedDoubleBuffer |
ControlStyles.UserPaint, true);
}
}
然後用DoubleBufferedPanel代替(這是naturall)System.Windows.Forms.Panel在Designer.cs類。 它適用於我,但由於以下錯誤無法轉到Form1 [設計]: 服務容器中已經存在服務System.Windows.Forms.Design.ISelectionUIService。參數名稱:serviceType
即使我只是複製 - 將DoubleBufferedPanel類粘貼到具有DoubleBufferedPanel的Form1.cs System.Windows.Forms.Panel時,該錯誤也會出現。
有什麼辦法可以避免這樣的錯誤嗎?我可以處理它,因爲我的程序在運行時完美運行,但我無法訪問Form1 [Design]。
也許在這種方式下直接修改Designer.cs有一些問題。您可以嘗試以更標準的方式創建控件https://msdn.microsoft.com/en-us/library/5h0k2e6x(v=vs.100).aspx,然後將其從工具箱http添加到設計器中://stackoverflow.com/questions/3446429/how-to-put-a-usercontrol-into-visual-studio-toolbox –