(快速浏览杰哥分享过的所有经验汇总,点击跳转) |
|
1简介
1.1效果图
长时间执行的代码,加个等待窗口,让用户等待,增加友好度,一般这在web领域叫遮罩层。不过狐表Exe的UI框架里并没有集成这个,只能自己变通实现试下。
此主题相关图片如下:1.png
这个Loading不是挺优雅的吗?(我提供这个简约通用的样式,就是希望你们拿走就用。论坛里分享的总是奇形怪状的加载动画,我怎么拿去见客户啊...)
此主题相关图片如下:loading.gif
我还提供PSD素材,让你能自己增加个logo呢
此主题相关图片如下:1-221129163z6164.gif
1.2遮罩层特色
- 代码简单,控制开关也简单。
- 支持圆角和透明窗体效果。
- 可以自定义加载中的gif动画,添加你的自己的logo,(需要你有PS功底)。
- 提供通用简约的GIF图,能用于任何项目场合,不搞怪异化。
- 弹出位置在屏幕中间+向上偏移150像素,这就不会挡住业务代码出错时的MessageBox窗口
- 无内存泄露【重要】。试过连续打开关闭500次,内存在10M内波动,不会无限增加,程序不崩。
此主题相关图片如下:3.png
1.3感谢前人分享
我综合比较了一下,最终选了第三个帖子去二次改造,感觉这个代码最少,好理解维护。不过它的方法存在一个严重缺陷:
内存泄露严重,开循环200次打开直接程序崩了
其他是小问题:
- 没有圆角
- 没有半透明
- 标题好丑
- 代码有点乱
- 等待窗口结束后,焦点会跳到其他程序(很烦人)
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系统
===============================================================
顺便总结以前分享过的帖子,方便大家学习
[此贴子已经被作者于2024/6/5 18:12:41编辑过]