我有表单大小的主面板并在上面放置了许多控件。我的问题是
当我在表单上单击(特别是在主面板的滚动条上的任何位置)时,它每次都会闪烁,这看起来很奇怪。
所以,任何人都可以告诉我这背后的原因是什么,或者建议我编写代码来阻止它。提前致谢。
向单个表单添加大量控件并不好,但是对于表单中的 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 desig
n-> 现在你有一个新控件toolbox
:将新控件插入表单 -> 将控件从旧面板复制到新面板