C#Label實時更新防閃爍


底層重繪每次會清除畫布,然后再全部重新繪制,這是導致閃爍最主要的原因。於是重載消息發送函數操作,禁掉這條消息。
protected override void WndProc(ref Message m)
        {
            if (m.Msg == 0x0014) // 禁掉清除背景消息
                return;
            base.WndProc(ref m);
        }

protected override CreateParams CreateParams { get {
CreateParams cp = base.CreateParams; cp.ExStyle |= 0x02000000; return cp; } }
public static void SetDoubleBuffered(object obj)
        {
            Type type = obj.GetType();
            PropertyInfo pi = type.GetProperty("DoubleBuffered",
            BindingFlags.Instance | BindingFlags.NonPublic);
            pi.SetValue(obj, true, null);
        }
 
         
         
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM