winform闪屏问题解决方案
这里所说的解决方案,其实也没有真正解决闪屏问题,暂时因个人能力和知识方面的原因,还没有找到比较好的解决方案,也请园子里的各位大侠大哥们出手共享大家的解决方案。
出现闪屏问题的原因:在winform开发中,我们为了实现比较美工的UI界面,常常会使用一些漂亮的背景图片放在Form中或者Panel中,而一个Form中可能有其他好几个背景,它们的颜色图案都不太一样,这样就会出现闪屏的问题,尤其是在一些性能不好的机器上,很容易看出来。
至于怎么解决,我在网上也找了很久,还是没有找到比较完美点的解决方案,但是用一些其他的方法可以减少闪屏,也就是说闪屏的效果不明显,这样也可以勉强符合要求了,接下来简介以下几种方案。
1、不使用图片作为背景,而用纯色替代,如果是这样的话,也就不会出现闪屏了,但如果UI上有特别要求的,这条路就行不通了。
2、重写Panel,然后在Panel中添加背景图片,而不是把背景图片添加到Form中,重写的Panel代码如下:
2 /// 一个Panel类,当设置背景图片时,控制其不会闪屏
3 /// </summary>
4 public class BackgroundPanel : Panel
5 {
6 protected override void OnPaintBackground(PaintEventArgs e)
7 {
8 return;
9 }
10
11 protected override void OnPaint(PaintEventArgs e)
12 {
13
14 this.DoubleBuffered = true;
15 if (this.BackgroundImage != null)
16 {
17 e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
18 e.Graphics.DrawImage(this.BackgroundImage, new System.Drawing.Rectangle(0, 0, this.Width, this.Height),
19 0, 0, this.BackgroundImage.Width, this.BackgroundImage.Height,
20 System.Drawing.GraphicsUnit.Pixel);
21 }
22 base.OnPaint(e);
23 }
24 }
3、使用Form的双缓存可以减少闪屏,但效果不明显,可以在Form的Load事件里添加以下代码
2 this.SetStyle(ControlStyles.DoubleBuffer, true);
3 this.SetStyle(ControlStyles.UserPaint, true);
4 this.SetStyle(ControlStyles.ResizeRedraw, true);
转载于:https://www.cnblogs.com/liubiaocai/archive/2011/07/19/2110248.html
winform闪屏问题解决方案相关推荐
- 破解版IDM导致电脑反复闪屏的解决方案
破解版IDM导致电脑反复闪屏的解决方案 概括: 进入安全模式,卸载IDM,结束 文章目录 破解版IDM导致电脑反复闪屏的解决方案 问题原因 解决方式: 问题原因 在使用IDM(Internet Dow ...
- win10 explorer导致闪屏的解决方案
前言 昨天刚接到朋友的求助,一连上网之后发现电脑一直在闪屏,疑似中毒的可能,系统是win10的,于是尝试按照惯例的方式进行故障排除. 猜测 第三方软件与系统的冲突 系统更新引起的 驱动更新导致的不兼容 ...
- Glide加载gif动画只播放一次的方法 Glide加载gif动画先显示最后一帧再开始播放动画导致闪屏的解决方案
场景: Android App利用ViewPager制作引导页,然后利用Glide加载gif动画. 问题: 1.Glide加载gif动画如何只播放一次? 2.Glide加载gif动画,在viewPag ...
- Ubuntu14.04 Y460闪屏问题解决方案
我的笔记本是联想Y460,安装了Ubuntu之后发现屏幕闪烁移位,而且在使用IDE的时候出现无法输入中文等问题,其实是显卡驱动的问题,N卡官网给的驱动不好用,尝试使用大黄蜂 参考:https://wi ...
- 关于联想Y700,玩游戏闪屏
首先,问题描述:联想Y700-14isk 显卡:AMD R9 M375.插上电源玩游戏闪屏,使用电池不闪屏. 解决方案: 1.打开电源选项 2.选择更改计划设计 3.选择高级电源设置 选择AMD图形 ...
- Android一种实现夜间模式方式,同时解决调用recreate() 时闪屏问题
最近项目中要实现夜间模式,调研了几种Android的夜间模式实现方式,都是需要动态的改变ui界面引用到color.drawable等资源文件.由于这个项目是迭代了比较多版本的,ui界面比较多,项目也比 ...
- Android如何接入渠道SDK的闪屏页?一个activity就够了
如果你是做SDK开发的,应该接入过很多渠道SDK,常见的渠道有华为.小米.VIVO.OPPO.应用宝.UC九游.三星.小七等,还有一些小的渠道以及一些聚合渠道SDK,成千上万个渠道,其中部分渠道是需要 ...
- WinForm Flicker闪屏解决方案
开发WinForm 程序时经常会遇到闪屏的问题,这会给用户造成很差的使用体验,所以必须妥善解决好这个问题. 首先,我们先要找出闪屏的原因,就我目前遇到的问题而言,其原因真是五花八门. 主要的原因有:使 ...
- Windows11系统闪屏解决方案
Windows11系统闪屏解决方案 注:本文提到的解决方法适用于Edge浏览器闪屏.Media Player音视频播放器闪屏.桌面间歇性闪屏.Edge浏览器加载缓慢.安卓子系统选择英伟达独显时闪屏等问 ...
最新文章
- Android多媒体之GLES2战记第四集--移形换影
- Linux系统支持的目录文件有,【技术支持】linux操作系统有哪些文件和目录操作相关命令?...
- 【走过巨坑】android studio对于jni调用及运行闪退无法加载库的问题解决方案
- Klockwork告警常见错误
- Linux LXR 网站
- mysql之慢日志查询
- Erlang的散列数据结构
- Python 操作 MySQL 的5种方式(转)
- MYSQL学习笔记 (二)对数据库结构的增删改查
- 前端学习(3001):vue+element今日头条管理--项目初始化总结
- 剑指 Offer 09. 用两个栈实现队列(相邻相同操作只需要移动一次)
- AttributeError: module ‘urllib’ has no attribute ‘quote’的解决办法
- 快速查找Unity中的死循环
- com.jcraft.jsch.JSchException: Algorithm negotiation fail 异常解决
- ZFS的ashift参数解读
- 《你的降落伞是什么颜色》
- 微服务选择Spring Cloud还是Dubbo?
- deepin外置键盘无法打开键盘背光灯的解决方法
- CSS常用颜色配色的参数设置
- IE提示“存储空间不足,无法完成此操作”的错误(彻底解决包括产生原因)...