WS_EX_COMPOSITED防止绘制

时间:2019-06-19 18:37:14

标签: c# vb.net winforms paint

我正在开发C#Winforms应用程序。 GUI部分很大(每个表单有200多个控件)。直到最近,我还遇到了闪烁的大问题。通过使用主面板上的WS_EX_COMPOSITED可以控制该问题:

public class MainPanel : Panel {

        protected override CreateParams CreateParams {
            get {
                CreateParams cp = base.CreateParams;
                cp.ExStyle |= 0x02000000; // WS_EX_COMPOSITED
                return cp;
            }
        }
...

不幸的是,应用WS_EX_COMPOSITED有一些副作用。一个问题是,使用控件似乎不再起作用。仅当不使用WS_EX_COMPOSITED时,以下代码才有效:

Graphics gr = myControl.CreateGraphics();
gr.DrawLine(new Pen(Color.Red, 10), 0,0 , 1000, 100);

除了绘制控件外,我还是希望继续使用WS_EX_COMPOSITED。

0 个答案:

没有答案