winform 添加背景图 闪屏问题解决
winform中只要添加了背景图片资源,窗体加载显示的时候就会出现不停的闪屏操作,网上找了很多方法,效果都不明显;
然后自己观察和思路:看窗体的加载过程,当有背景图的时候,首先出来的是背景图,之后背景图上层的控件比如Panel、Button等就会闪烁,如果删除了背景图,就页面加载速度也快了,也咩有闪屏的现象了
自己的思路:等页面完全加载完成时候,再设置背景图,是否就不会出现严重闪屏,想到了一个方法入下:

1 private void Form_Shown(object sender, EventArgs e)
2 {
3 显示背景图控件.BackgroundImage = Image.FromFile("图片资源地址");
4 }
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 (这个博主写的比较详细透彻,自己又悟到了)
winform 添加背景图 闪屏问题解决的更多相关文章
- angular4模块中标签添加背景图
一.现象 一个全屏的“走马灯”每项需要添加背景图,在循环标签里需要动态添加行内样式 二.解决 1.首先有一个图片数组,如: export class AppComponent { array = [& ...
- 给textarea添加背景图
给textarea添加背景图用的好也很有意思哦. <style type="text/css"> textarea{ background: url(img/carto ...
- Ubuntu 16.04 Vysor 破解 和黑屏问题解决+ 闪屏问题解决
最新破解更新说明: 参考本人blog: 点我呀 黑屏解决 Vysor使用和黑屏问题 经过了一段时间的艰辛探索,确定是我chrome的PNaCl没有安装,然后又是一段艰辛的Google之后,终于在一个链 ...
- 6-Qt给父widget加上styleSheet(添加背景图)而不改变子widget的styleSheet的方法
Qt给父widget加上styleSheet(添加背景图)而不改变子widget的styleSheet的方法 比如用stylesheet给widget加背景图,可以用qt designer修改ui文件 ...
- gtk中构件添加背景图
在gtk中我们总想要去给构件添加背景图,具体函数代码如下 void chang_background(GtkWidget *widget, int w, int h, const gcha r *pa ...
- WinForm界面设计-Button添加背景图去边框
转自:https://www.cnblogs.com/tommy-huang/p/4283538.html 1.既然是添加背景图片 所以这里应该使用 Button.BackgroudImage = & ...
- html-css控制背景图全屏拉伸不重复显示
在HTML中,当我们设置背景图,只能采用是否重叠.居中.重叠方向这几个选项 CSS3中设置 body { background:#3d71b8 url(../back_main.png); backg ...
- [转]完美的背景图全屏css代码 – background-size:cover?
写主题样式的时候经常会碰到用背景图铺满整个背景的需求,这里分享下使用方法 需要的效果 图片以背景的形式铺满整个屏幕,不留空白区域 保持图像的纵横比(图片不变形) 图片居中 不出现滚动条 多浏览器支持 ...
- PS 抠图和添加背景图
1.打开需要抠的图--然后使用套索类工具,魔棒类工具,钢笔类工具均可选择需要扣的图片范围任何在Delete(如果抠反了可以进行反选Ctrl +shift+I) 2.然后把任一一张背景图直接拖到PS里面 ...
随机推荐
- Python循环语句代码详解:while、for、break
1 while循环 循环语句是程序设计中常用的语句之一.任何编程语言都有while循环,Python也不例外.while循环的格式如下所示. while(表达式): - else: ...
- NET 5 Topshelf 或者WorkerServices搭建 Windows/Linux 服务
参考文章https://www.cnblogs.com/RainFate/p/12095793.html Topshelf Topshelf 是一个用来部署基于.NET Framework 开发的服务 ...
- C#随机生成不重复邀请码&创建登录Token&转换人民币大小金额
/// <summary> /// 创建登陆Token /// </summary> /// <param name="length">< ...
- Autofac的基本使用---5、常用配置
Autofac的基本使用---目录 创建实例方法 参考:http://www.cnblogs.com/manglu/p/4115128.html InstancePerDependency 对每一个依 ...
- HashMap的循环姿势你真的掌握了吗?
hashMap 应该是java程序员工作中用的比较多的一个键值对处理的数据的类型了.这种数据类型一般都会有增删查的方法,今天我们就来看看它的循环方法以前写过一篇关于ArrayList的循环效率问题&l ...
- [leetcode]205. Isomorphic Strings同构字符串
哈希表可以用ASCII码数组来实现,可以更快 public boolean isIsomorphic(String s, String t) { /* 思路是记录下每个字符出现的位置,当有重复时,检查 ...
- 基于http的netty demo
1.引入netty的pom <dependency> <groupId>io.netty</groupId> <artifactId>netty-all ...
- Hbase性能调优(一)
转自:https://blog.csdn.net/yueyedeai/article/details/14648111 1.修改Linux配置 Linux系统最大可打开文件数一般默认的参数值是1024 ...
- HarmonyOS分布式任务调度开发之--你必须知道的bundleName
背景 最近基于HarmonyOS在写一个通讯录的项目,已经完成了一个java版本的通讯录,通讯录数据全部存储在sqlite数据库中.现在在着手写一个JS版本的通讯录,这时候关于JS版本中数据的读取,我 ...
- 浅谈.NET技术公司的实习生培养
浅谈.NET技术公司的实习生培养 背景 近几年.NET开发者市场的越发不景气,一毕业就选择.NET技术的开发者更是少之又少.一方面是公司效益的日益提高,一方面却是招聘优秀人才的速度总是赶不上公司发展的 ...