`
hududanyzd
  • 浏览: 815852 次
文章分类
社区版块
存档分类
最新评论

C#防止在画面上闪烁的Button

 
阅读更多

当在winform中放置很多Button控件,并且画面还有背景,每个Button都还有背景的时候,显示画面时就会产生闪烁的效果,如果机器性能好的话,画面会比较快的加载完,闪烁的情况不会很明显,但是如果机器性能不佳的话,则会给用户很差的体验。即使画面和Button采用了双缓存,效果也不明显。因此需要对C#中的Button加以重载并重写部分代码。就可以避免这种情况发生了。废话不多说了,代码如下:

public class ButtonEx : Button
{
public ButtonEx()
{

}


//基类的方法不能用
protected override void OnPaintBackground(PaintEventArgs e)
{
return;
}

protected override void OnPaint(PaintEventArgs e)
{
//一定要设置背景图哦
if (this.BackgroundImage != null)
{
e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
e.Graphics.DrawImage(this.BackgroundImage, new System.Drawing.Rectangle(0, 0, this.Width, this.Height),
0, 0, this.BackgroundImage.Width, this.BackgroundImage.Height,
System.Drawing.GraphicsUnit.Pixel);
}

//基类的OnPaint方法不能使用
//base.OnPaint(e);
}


}





分享到:
评论

相关推荐

    C# listview 防止闪烁实例

    双缓冲是一种图形绘制技术,它将所有绘制操作先在内存中的缓冲区完成,然后再一次性地显示到屏幕上,从而避免了屏幕频繁刷新带来的闪烁。 以下是实现C# ListView防闪烁的步骤: 1. **创建自定义ListView类**: ...

    C#实现按钮Button的重写

    在C#编程中,按钮控件(Button)是Windows Forms和WPF应用程序中常见的交互元素。用户通过点击按钮来触发特定的事件或执行相应的操作。本文将深入探讨如何在C#中实现对按钮控件(Button)的重写,以创建自定义的...

    C#制作的渐变Button控件

    总结起来,"C#制作的渐变Button控件"是一个利用C#和GDI+技术创建的用户自定义控件,它允许开发者在Button上实现美观的渐变色彩效果。这种自定义控件不仅提升了应用的视觉体验,也为程序员提供了更多的界面设计可能性...

    探寻C# Button双击事件

    在C#编程中,`Button` 控件是非常常用的界面元素之一,用于响应用户的交互操作。然而,在.NET框架中,默认情况下并未提供`Button`控件的双击事件(`DoubleClick`)。这可能会让初学者感到困惑,因为他们习惯于在其他...

    在窗体标题栏中添加帮助按钮,C#源代码this.HelpButton = true;

    在本篇中,我们将深入探讨如何利用C#在窗体标题栏中添加一个帮助按钮,并通过`this.HelpButton = true;`这一源代码实现这一功能。 首先,我们需要理解`HelpButton`属性。在C#的WinForms编程中,`Form`类提供了一个...

    C#动态创建button的方法

    本篇文章将深入探讨如何在C#中动态创建`Button`控件,并讨论相关属性的动态设置以及事件处理的绑定。通过了解这些知识,开发者可以更加灵活地构建用户界面,根据程序运行时的需求添加或删除控件。 首先,我们来看一...

    C#中防止点击同一按钮多次弹出多个同一窗体办法

    C#,中防止点击同一按钮,多次弹出多个同一窗体,办法 C#,中防止点击同一按钮,多次弹出多个同一窗体,办法 C#,中防止点击同一按钮,多次弹出多个同一窗体,办法 C#,中防止点击同一按钮,多次弹出多个同一窗体,...

    C# 自定义控件 自定义Button控件 水晶按钮

    本主题将深入探讨如何在C#中自定义一个“水晶按钮”控件,它不仅具备基本Button的功能,还可以通过自定义样式和效果实现独特的视觉体验。 首先,我们需要了解控件的基本构造。在C#中,自定义控件通常继承自已有的...

    C#可透明并且不闪烁的Panel

    双缓冲是一种减少屏幕更新时闪烁的技术,它在内存中先完成整个界面的绘制,然后再一次性显示到屏幕上。在`Panel`控件中,我们可以通过设置`SetStyle`方法来启用双缓冲: ```csharp public TransparentPanel() { ...

    重绘 C# button按钮

    在C# WinForms开发中,有时我们可能需要创建具有特殊外观或功能的自定义按钮,以满足特定的设计或交互需求。本节将详细介绍如何通过重绘技术实现自定义的C#按钮。 首先,理解WinForms中的控件绘制原理至关重要。...

    Vista Style Button in C#

    在C#编程环境中,"Vista Style Button"指的是在Windows Vista操作系统中引入的一种新的按钮样式,它具有更现代化、平滑且富有立体感的外观。这种按钮设计与之前的Windows XP等版本中的样式相比,提供了更好的用户...

    C#绘制不规则button

    ### C#绘制不规则Button详解 #### 一、引言 在GUI开发中,我们经常需要自定义控件的外观来提升用户体验。本篇文章将详细介绍如何利用C#结合`System.Drawing.Drawing2D`命名空间中的类和方法来实现不规则形状的...

    C#Winforms背景图闪烁解决方案

    C#Winforms背景图闪烁解决方案,即将本段代码直接添加进窗体类。但是有一个弊端,但针对面板背景图闪烁也可以在窗体中寻找双缓存属性将其改成TRUE也能解决此问题!!!

    c# 任务栏中图标闪烁效果

    c# ,任务栏,图标,闪烁,效果 c# ,任务栏,图标,闪烁,效果 c# ,任务栏,图标,闪烁,效果 c# ,任务栏,图标,闪烁,效果 c# ,任务栏,图标,闪烁,效果 c# ,任务栏,图标,闪烁,效果 vc# ,任务栏,图标,...

    C#自定义按钮、自定义Button控件

    在标签中,“自定义 Button 控件”意味着我们将关注点放在了Button控件的定制上;“按钮”是控件的基本概念,通常用于触发一个操作;“C#”是我们使用的编程语言,它提供了丰富的类库和API来实现自定义控件;...

    C#写的超爽Button控件

    在C#中,自定义控件通常需要继承自现有的控件类,如System.Windows.Forms.Button或System.Windows.Controls.Button,然后添加额外的属性、方法和事件。例如,开发者可能扩展了Button类,并添加了诸如"PulseInterval...

    C#做的3D按钮,有多种效果

    综上所述,这个项目展示了C#在GUI开发中的灵活性,特别是如何通过编程技巧来实现复杂的3D视觉效果。通过学习这个项目,开发者可以深入了解C#的UI设计,以及如何通过自定义控件提升应用的用户体验。

    C#NotifyIcon闪烁示例

    在本文中,我们将深入探讨如何使用C#编程语言中的`NotifyIcon`组件和`Timer`组件来实现类似于QQ消息提示的闪烁效果。`NotifyIcon`是Windows Forms应用程序中一个非常实用的工具,它允许程序在任务栏托盘区域显示图标...

    框选要素显示(高亮,闪烁)(C#2005+AE9.2)

    在IT行业中,尤其是在GIS(地理信息系统)开发领域,"框选要素显示(高亮,闪烁)"是一个常见的需求。本文将详细解析如何利用C# 2005与ArcGIS Engine (AE) 9.2来实现这个功能。AE是Esri公司提供的一个强大的开发工具,...

    C# 5种类型的自定义Button控件合集GDI+自绘精美漂亮的播放器按钮

    在本文中,我们将深入探讨如何使用C#编程语言创建自定义的Button控件,特别是针对播放器、Vista风格以及Office 2007和2010样式的设计。我们将利用GDI+图形设备接口的强大功能,实现按钮的自绘,以创造出美观且功能...

Global site tag (gtag.js) - Google Analytics