首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WinForms - Form.DoubleBuffered属性是否会影响放置在该窗体上的控件?

WinForms - Form.DoubleBuffered属性是否会影响放置在该窗体上的控件?
EN

Stack Overflow用户
提问于 2009-05-26 15:44:01
回答 1查看 3.3K关注 0票数 5

Form具有DoubleBuffered属性(布尔值,从控件继承)。

如果设置为true,是否所有放置在窗体上的控件都以双缓冲方式绘制到屏幕上?或者你需要担心他们自己的DoubleBuffered属性吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-05-26 15:58:48

据我所知,不,双缓冲不会带入子控件。您需要为每一个单独设置它。我会在谷歌上搜索一下,看看我是否能找到来源来证明/反驳这一点。

编辑:找到这个:http://www.devnewsgroups.net/group/microsoft.public.dotnet.framework.windowsforms/topic17173.aspx

只是想了一个快速的方法来解决这个问题。基本上,使用反射来获取"DoubleBuffered“属性,然后设置它:

代码语言:javascript
复制
public static class Extensions
{
    public static void EnableDoubleBuferring(this Control control)
    {
        var property = typeof(Control).GetProperty("DoubleBuffered", BindingFlags.Instance | BindingFlags.NonPublic);
        property.SetValue(control, true, null);
    }
}

然后,在表单代码中执行如下操作:

代码语言:javascript
复制
    public Form1()
    {
        InitializeComponent();
        this.DoubleBuffered = true;
        foreach (Control control in this.Controls)
        {
            control.EnableDoubleBuferring();
        }
    }
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/911376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档