Foxtable(狐表)用户栏目专家坐堂 → [杰哥的分享]狐表实现“加载中”效果的遮罩层/等待窗口方案。2行代码简单控制,支持圆角、无锯齿、透明窗体、自定义Logo、无内存泄露,样式简约,代码一抄即用 ,长时间执行的代码强烈推荐配合使用


  共有30083人关注过本帖树形打印复制链接

主题:[杰哥的分享]狐表实现“加载中”效果的遮罩层/等待窗口方案。2行代码简单控制,支持圆角、无锯齿、透明窗体、自定义Logo、无内存泄露,样式简约,代码一抄即用 ,长时间执行的代码强烈推荐配合使用

帅哥哟,离线,有人找我吗?
chen37280600
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1279 积分:7953 威望:0 精华:4 注册:2017/12/31 14:53:00
[杰哥的分享]狐表实现“加载中”效果的遮罩层/等待窗口方案。2行代码简单控制,支持圆角、无锯齿、透明窗体、自定义Logo、无内存泄露,样式简约,代码一抄即用 ,长时间执行的代码强烈推荐配合使用  发帖心情 Post By:2022/11/29 17:11:00 [只看该作者]

(快速浏览杰哥分享过的所有经验汇总,点击跳转


1简介
1.1效果图
长时间执行的代码,加个等待窗口,让用户等待,增加友好度,一般这在web领域叫遮罩层。不过狐表Exe的UI框架里并没有集成这个,只能自己变通实现试下。

此主题相关图片如下:1.png
按此在新窗口浏览图片

这个Loading不是挺优雅的吗?(我提供这个简约通用的样式,就是希望你们拿走就用。论坛里分享的总是奇形怪状的加载动画,我怎么拿去见客户啊...

此主题相关图片如下:loading.gif
按此在新窗口浏览图片

我还提供PSD素材,让你能自己增加个logo呢

此主题相关图片如下:1-221129163z6164.gif
按此在新窗口浏览图片


1.2遮罩层特色
  1. 代码简单,控制开关也简单。
  2. 支持圆角和透明窗体效果。
  3. 可以自定义加载中的gif动画,添加你的自己的logo,(需要你有PS功底)。
  4. 提供通用简约的GIF图,能用于任何项目场合,不搞怪异化。
  5. 弹出位置在屏幕中间+向上偏移150像素,这就不会挡住业务代码出错时的MessageBox窗口
  6. 无内存泄露【重要】。试过连续打开关闭500次,内存在10M内波动,不会无限增加,程序不崩。


此主题相关图片如下:3.png
按此在新窗口浏览图片


1.3感谢前人分享

我综合比较了一下,最终选了第三个帖子去二次改造,感觉这个代码最少,好理解维护。不过它的方法存在一个严重缺陷
内存泄露严重,开循环200次打开直接程序崩了

此主题相关图片如下:4.png
按此在新窗口浏览图片

此主题相关图片如下:5.png
按此在新窗口浏览图片

其他是小问题:
  • 没有圆角
  • 没有半透明
  • 标题好丑
  • 代码有点乱
  • 等待窗口结束后,焦点会跳到其他程序(很烦人)

2教程
2.1放好图片素材
图片素材放到Images文件夹里,与待会全局代码的路径相匹配

此主题相关图片如下:1.png
按此在新窗口浏览图片

2.2添加全局代码

此主题相关图片如下:6.png
按此在新窗口浏览图片

代码如下:

以下内容只有回复后才可以浏览

2.3使用方法

此主题相关图片如下:7.png
按此在新窗口浏览图片

Try
    WaitShow() '显示等待窗口

    '模拟长耗时代码
    For i As Integer = 0 To 3000
        e.Form.Controls("TextBox1").Text = i
    Next    
Catch ex As Exception
    MessageBox.show(ex.Message)
Finally 
    WaitClose() '关闭等待窗口
End Try


2.4注意事项
  • 推荐配合Try使用,Finally里放WaitClose(),防止因为业务代码异常而导致遮罩层不关闭。
  • 当然如果你有把握,中间过程代码不会出错的,不用Try,直接使用也没问题。如果真的出现异常,你可以告诉客户在底部菜单栏右键强制关闭。它的关闭,并不会影响原来主线程在做的事情。

3自定义加载GIF动画
这个需要你有PS基础,我已经提供了我这次使用的gif图的原PSD文件。需要在PS里打开,并且启动PS的`时间轴`功能。你要去百度学习一下PS的时间轴玩法和GIF保存方法
3.1添加自定义logo和背景
例如我加一个迈宝伦科技官网的logo去中间

此主题相关图片如下:8.png
按此在新窗口浏览图片


此主题相关图片如下:1.png
按此在新窗口浏览图片


成品效果:

此主题相关图片如下:1-221129163z6164.gif
按此在新窗口浏览图片

3.2透明背景和圆角
gif是支持透明背景的,圆角也支持,在PS做好即可。唯一要注意就是生成GIF图时,圆角要设置相应的`杂边`颜色,不然会有难看的`白色锯齿`


此主题相关图片如下:2.png
按此在新窗口浏览图片

以下是正确保存方法

此主题相关图片如下:3.png
按此在新窗口浏览图片


此主题相关图片如下:4.png
按此在新窗口浏览图片


3.3注意不要用某个绿色
在刚才的全局代码里有一个

...
waitForm.BackColor = Color.Green '绿色背景框
waitForm.TransparencyKey = Color.Green '针对绿色进行透明化,配合上面的绿色使用。因此也要求GIF图片不能有纯绿色RGB(0,128,0)
...

这个是狐表窗口实现边框透明的关键,设置绿色边框,并对绿色进行透明化。所以你如果GIF里刚好包含了RGB(0,128,0)的绿色,也会被抠图走,穿孔很丑了。
如果你的Gif图一定要用这种绿色,我推荐你可以换别的颜色组合,例如Color.Red。就跟好莱坞拍戏用绿幕,演员就别穿颜色相近的绿衣服一个道理。

4.案例源码下载


以下内容只有回复后才可以浏览
版本说明:程序需要20220818或以上的加密狗打开。如果你没有这个版本也没关系,可以下载源码,只要里面的GIF素材PS素材,配合上面分享的代码,复制就能用,不一定非得开源码看。

=====================================================================
杰哥免费分享的Exe系统


杰哥免费分享的web系统






===============================================================
顺便总结以前分享过的帖子,方便大家学习

联系QQ:2385350359


经验分享:
























[此贴子已经被作者于2024/6/5 18:12:41编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
linswcfr
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:600 积分:5521 威望:0 精华:0 注册:2011/9/30 8:42:00
  发帖心情 Post By:2022/11/29 17:26:00 [只看该作者]

谢谢分享

 回到顶部
帅哥哟,离线,有人找我吗?
foxtablefanse
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:568 积分:5458 威望:0 精华:0 注册:2018/11/6 10:54:00
  发帖心情 Post By:2022/11/29 17:32:00 [只看该作者]

沙发

 回到顶部
帅哥哟,离线,有人找我吗?
lindong
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:469 积分:4143 威望:0 精华:0 注册:2013/12/9 0:52:00
  发帖心情 Post By:2022/11/29 17:54:00 [只看该作者]

讲得很详细,点赞

 回到顶部
帅哥哟,离线,有人找我吗?
wudishaoshuai
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:185 积分:1192 威望:0 精华:0 注册:2020/8/20 14:33:00
  发帖心情 Post By:2022/11/29 17:59:00 [只看该作者]

看看


 回到顶部
帅哥哟,离线,有人找我吗?
qq51837000
  6楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:217 积分:2166 威望:0 精华:0 注册:2021/3/7 1:27:00
  发帖心情 Post By:2022/11/29 19:16:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
肥肥记
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:361 积分:3027 威望:0 精华:0 注册:2016/9/15 11:50:00
  发帖心情 Post By:2022/11/29 19:47:00 [只看该作者]

图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
lshshlxsh
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:658 积分:7902 威望:0 精华:0 注册:2013/12/11 17:49:00
  发帖心情 Post By:2022/11/29 20:10:00 [只看该作者]

图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
newsun2k
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1499 积分:11175 威望:0 精华:0 注册:2014/8/13 16:19:00
  发帖心情 Post By:2022/11/29 20:31:00 [只看该作者]

谢谢分享

 回到顶部
帅哥哟,离线,有人找我吗?
playmal
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1582 积分:13080 威望:0 精华:0 注册:2009/6/16 7:30:00
  发帖心情 Post By:2022/11/29 20:56:00 [只看该作者]

你好

 回到顶部
总数 93 1 2 3 4 5 6 7 8 9 10 下一页