0

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

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

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

4

1 回答 1

0

向单个表单添加大量控件并不好,但是对于表单中的 Stop Blinking 设置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-> 转到你的form design-> 现在你有一个新控件toolbox:将新控件插入表单 -> 将控件从旧面板复制到新面板

于 2013-04-13T07:57:52.710 回答