900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > C# WinForm解决Panel控件中的图片刷新时会闪烁的问题

C# WinForm解决Panel控件中的图片刷新时会闪烁的问题

时间:2022-11-21 13:33:26

相关推荐

C# WinForm解决Panel控件中的图片刷新时会闪烁的问题

最近在项目开发过程中,使用Panel控件显示座位背景图,在分屏切换时,发现背景图会闪烁。在同事的帮助下,通过以下方法解决了:

新建一个类,继承Panel控件类,然后开启该控件的双重辅助缓冲区,禁止擦除背景,具体请看代码:

1、新建一个NewPanel类,继续Panel控件类

using System;

using System.Collections.Generic;

using ponentModel;

using System.Diagnostics;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace XC.Contorl

{

/// <summary>

/// 用途:防止Panel闪烁

/// </summary>

public partial class NewPanel : Panel

{

public NewPanel()

{

InitializeComponent();

this.DoubleBuffered = true;//设置本窗体

SetStyle(ControlStyles.UserPaint, true);

SetStyle(ControlStyles.AllPaintingInWmPaint, true); // 禁止擦除背景.

SetStyle(ControlStyles.DoubleBuffer, true); // 双缓冲

}

public NewPanel(IContainer container)

{

container.Add(this);

InitializeComponent();

this.DoubleBuffered = true;//设置本窗体

SetStyle(ControlStyles.UserPaint, true);

SetStyle(ControlStyles.AllPaintingInWmPaint, true); // 禁止擦除背景.

SetStyle(ControlStyles.DoubleBuffer, true); // 双缓冲

}

}

}

2、引用新的Panel控件类

在InitializeComponent() 中,添加以下代码:

this.Panel1 = new XC.Contorl.NewPanel(ponents);

通过以上发法即可解决图片闪烁问题,有错误或不足之处,望批评指正!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。