• 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);
            }

            
        }





  • 相关阅读:
    提权函数之RtlAdjustPrivilege()
    用C#写外挂或辅助工具必须要的WindowsAPI
    ASP.net中保持页面中滚动条状态
    asp.net窗体的打开和关闭
    界面原型设计工具 Balsamiq Mockups
    在List(T)中查找数据的两种方法
    P2158 [SDOI2008]仪仗队 题解
    P1531 I Hate It 题解
    C#
    破解网站防盗链
  • 原文地址:https://www.cnblogs.com/kevinGao/p/2270747.html
Copyright © 2020-2023  润新知