C# 如何在每次单击窗口窗体时停止闪烁窗体?
我有一个窗体大小的主面板,并在上面放置了许多控件 当我在窗体上单击(特别是在主面板的滚动条上的任何位置)时,它每次都会闪烁,看起来很奇怪C# 如何在每次单击窗口窗体时停止闪烁窗体?,c#,.net,forms,panel,C#,.net,Forms,Panel,我有一个窗体大小的主面板,并在上面放置了许多控件 当我在窗体上单击(特别是在主面板的滚动条上的任何位置)时,它每次都会闪烁,看起来很奇怪 所以,请任何人告诉我这背后的原因是什么,或者建议我用代码来阻止这一切。提前感谢。在单个表单中添加大量控件并不好,但对于在表单集属性中停止闪烁,请将双缓冲设置为真 已编辑 创建自定义面板并将DoubleBuffered设置为true: public partial class CPanel : Panel { public CPanel () {
所以,请任何人告诉我这背后的原因是什么,或者建议我用代码来阻止这一切。提前感谢。在单个表单中添加大量控件并不好,但对于在表单集属性中停止闪烁,请将双缓冲设置为
真
已编辑
创建自定义面板并将DoubleBuffered设置为true:
public partial class CPanel : Panel
{
public CPanel ()
{
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
UpdateStyles();
}
}
如何
将新类插入到项目中,并将其代码替换为:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace yournamespace
{
public partial class CPanel : Panel
{
public CPanel()
{
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
UpdateStyles();
}
}
}
构建你的
应用程序
->转到你的表单设计
n->现在你在工具箱中有了一个新控件
:在表单中插入新控件->将控件从旧面板复制到新面板大约50个,但在我的上一个应用程序中,我也添加了太多控件,但它工作正常。我应该把CPanel的主体放进去吗(以上)方法进入我的主面板主体?让我们尽可能复制