有没有办法同时将双缓冲区表单设置为mdi容器?
我试图绘制控件,但它没有激活双缓冲区功能,所以我的图形闪烁
答案 0 :(得分:4)
MdiContainer
只是Form
IsMdiContainer
为true
。因此,您只需在该表单上设置DoubleBuffered = true
。
如果您的意思是MdiClient
,我认为您必须尝试使用这样的Reflection
:
typeof(MdiClient).GetProperty("DoubleBuffered", BindingFlags.NonPublic | BindingFlags.Instance)
.SetValue(yourForm.Controls.OfType<MdiClient>().First(), true, null);
答案 1 :(得分:0)
对我不起作用......只对我有用:
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ExStyle = API.WindowStylesEx.WS_EX_COMPOSITED;//| API.WindowStylesEx.WS_EX_LAYERED;
return cp;
}
}
但有这个问题