zoukankan      html  css  js  c++  java
  • winform 添加背景图 闪屏问题解决

    winform中只要添加了背景图片资源,窗体加载显示的时候就会出现不停的闪屏操作,网上找了很多方法,效果都不明显;

    然后自己观察和思路:看窗体的加载过程,当有背景图的时候,首先出来的是背景图,之后背景图上层的控件比如Panel、Button等就会闪烁,如果删除了背景图,就页面加载速度也快了,也咩有闪屏的现象了

    自己的思路:等页面完全加载完成时候,再设置背景图,是否就不会出现严重闪屏,想到了一个方法入下:

    1   private void Form_Shown(object sender, EventArgs e)
    2         {
    3             显示背景图控件.BackgroundImage = Image.FromFile("图片资源地址");
    4         }
    View Code

    Shown方法是所有控件加载完成后执行,只会触发一次

    看了下效果,闪屏没有之前的严重了,但是还是会出现闪屏

    最后还试了很多种方法,都么得解决根本闪屏操作

    只有下面这段代码是真的神奇,加上就一下也不闪啦 

     1 protected override CreateParams CreateParams  
     2         {  
     3             get  
     4             {  
     5   
     6                 CreateParams cp = base.CreateParams;  
     7   
     8                 cp.ExStyle |= 0x02000000;  // Turn on WS_EX_COMPOSITED    
     9   
    10                 if (this.IsXpOr2003 == true)  
    11                 {  
    12                     cp.ExStyle |= 0x00080000;  // Turn on WS_EX_LAYERED  
    13                     this.Opacity = 1;  
    14                 }  
    15   
    16                 return cp;  
    17   
    18             }  
    19   
    20         }  //防止闪烁  
    21   
    22         private Boolean IsXpOr2003  
    23         {  
    24             get  
    25             {  
    26                 OperatingSystem os = Environment.OSVersion;  
    27                 Version vs = os.Version;  
    28   
    29                 if (os.Platform == PlatformID.Win32NT)  
    30                     if ((vs.Major == 5) && (vs.Minor != 0))  
    31                         return true;  
    32                     else  
    33                         return false;  
    34                 else  
    35                     return false;  
    36             }  
    37         }  

    将这段代码复制粘贴到闪屏的窗体类中,就不会闪屏了

    参考地址:

    https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.control.createparams?view=net-5.0 (微软官方)

    http://blog.sina.com.cn/s/blog_1590305720102x8jv.html   (这个博主写的比较详细透彻,自己又悟到了)

  • 相关阅读:
    *Reverse Linked List II
    *Insertion Sort List
    Convert Sorted List to Binary Search Tree
    Reverse Integer
    read cache return null
    纳秒和随机数
    libthread_db
    gdb
    tls session resumption
    http://www.linux-commands-examples.com/xmllint
  • 原文地址:https://www.cnblogs.com/19930521zhang/p/14271129.html
Copyright © 2011-2022 走看看