如何在Window窗体上的每次单击时停止闪烁我的表单?

时间:2013-04-13 07:47:58

标签: c# .net forms panel

我有表格大小的主面板,并在其上放置了许多控件。我的问题是

当我在表格上点击(特别是主面板滚动条上的任何位置)时,每次看起来很奇怪都会闪烁。

所以,任何人都可以告诉我这背后的原因是什么,或建议我代码来阻止这一点。提前谢谢。

1 个答案:

答案 0 :(得分:0)

在单个表单中添加大量控件并不好,但对于表单集属性DoubleBuffered中的停止闪烁到true

<强>被修改

制作一个自定义面板并将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();
        }
    }
}

构建您的application - &gt;转到form desig n-&gt;现在您在toolbox中有了一个新控件:在表单中插入新控件 - &gt;复制您的控件从旧面板到新面板