添加项目文件。
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace JinYuan.ControlLib
|
||||
{
|
||||
public partial class PanelEnhanced : Panel
|
||||
{
|
||||
public PanelEnhanced()
|
||||
{
|
||||
InitializeComponent();
|
||||
//设置控件样式,去除缓冲
|
||||
this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
|
||||
this.SetStyle(ControlStyles.DoubleBuffer, true);
|
||||
this.SetStyle(ControlStyles.ResizeRedraw, true);
|
||||
this.SetStyle(ControlStyles.Selectable, true);
|
||||
this.SetStyle(ControlStyles.SupportsTransparentBackColor, true);
|
||||
}
|
||||
|
||||
protected override void OnPaintBackground(PaintEventArgs e)
|
||||
{
|
||||
//重载基类得背景擦除方法
|
||||
|
||||
//解决窗体刷新,放大和闪烁
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
protected override void OnPaint(PaintEventArgs e)
|
||||
{
|
||||
//使用双缓冲
|
||||
this.DoubleBuffered = true;
|
||||
|
||||
if (this.BackgroundImage != null)
|
||||
{
|
||||
e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
|
||||
|
||||
e.Graphics.DrawImage(this.BackgroundImage, new Rectangle
|
||||
(0, 0, this.Width, this.Height), 0, 0, this.BackgroundImage.Width, this.BackgroundImage.Height, GraphicsUnit.Pixel);
|
||||
}
|
||||
base.OnPaint(e);
|
||||
}
|
||||
|
||||
#region 减少闪烁
|
||||
protected override CreateParams CreateParams
|
||||
{
|
||||
get
|
||||
{
|
||||
CreateParams cp = base.CreateParams;
|
||||
cp.ExStyle |= 0x02000000;
|
||||
return cp;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user