C# 控件闪烁问题

我的应用程序中由很多button控件,大概40个左右,这些按钮放在一个GroupBox容器中,程序运行时,当有其他窗口覆盖在这些按钮然后移开时就会出现很闪烁的情况。在网上... 我的应用程序中由很多button控件,大概40个左右,这些按钮放在一个GroupBox容器中,程序运行时,当有其他窗口覆盖在这些按钮然后移开时就会出现很闪烁的情况。
在网上查了很多资料,大多和设置 doublebuffered 属性有关,代码像
SetStyle(ControlStyles.DoubleBuffer |
ControlStyles.OptimizedDoubleBuffer |
ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint,
true);
UpdateStyles();
放在form或groupbox构造函数中,但是都没有什么效果,还是我设置的不对呢。
关于双缓冲的原理也看了很多,但是如何解决控件闪烁的问题呢?
展开
 我来答
百度网友94f02eb
推荐于2018-04-02 · TA获得超过8612个赞
知道大有可为答主
回答量:7955
采纳率:74%
帮助的人:4447万
展开全部
这样试试:

将下面的代码,放在 FORM 的构造函数的 InitializeComponent(); 后面

Version v = System.Environment.Version;

if (v.Major < 2)
{
this.SetStyle(ControlStyles.DoubleBuffer, true);
}
else
{
this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
}

this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
this.SetStyle(ControlStyles.UserPaint, true);
this.SetStyle(ControlStyles.ResizeRedraw, true);
zhaojiangnan19
2013-01-09
知道答主
回答量:4
采纳率:0%
帮助的人:3.1万
展开全部
有一个问题是,我用vs2005,用的是ControlStyles.OptimizedDoubleBuffer,因为没提供DoubleBuffer,但是出现了一个问题,就是绘制的控件显示不出来,后来改成DoubleBuffer,就可以显示,你不妨也试试看,能不能解决你的问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友57cd287e5
2009-04-18 · TA获得超过277个赞
知道小有建树答主
回答量:529
采纳率:0%
帮助的人:164万
展开全部
this.SetStyle(ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer, true);

UpdateStyles();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式