Winform中扩展Panel使之具备双缓存,防止闪屏
时间: 2024-03-02 18:51:31 浏览: 34
在Winform中扩展Panel使之具备双缓存,可以通过以下步骤实现:
1. 创建一个新的类,继承Panel类;
2. 重写CreateParams属性,将双缓存样式WS_EX_COMPOSITED添加到窗口样式中;
3. 重写OnPaintBackground方法和OnPaint方法,分别绘制背景和前景;
4. 将控件的DoubleBuffered属性设置为true。
下面是一个示例代码:
```csharp
public class DoubleBufferedPanel : Panel
{
public DoubleBufferedPanel()
{
this.DoubleBuffered = true;
}
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ExStyle |= 0x02000000; // 添加双缓存样式
return cp;
}
}
protected override void OnPaintBackground(PaintEventArgs e)
{
// 不绘制背景
}
protected override void OnPaint(PaintEventArgs e)
{
// 绘制前景
base.OnPaint(e);
}
}
```
使用这个新的类来替代原来的Panel控件,就可以实现双缓存,避免闪屏问题。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)