【吉光片羽】奇怪的Bug-细节的问题
2015-07-08 09:21 stoneniqiu 阅读(607) 评论(1) 编辑 收藏 举报这几天用Winform开发了一个小界面,遇到几个奇怪的问题,记录一下。
1.背景图片漏光。
当时很是奇怪,以为是图片的问题,让美工重新发,改成jpg也都存在。很是奇怪,原图这个地方肉眼看是不透明的,而且这个漏光还是对称的,在图片的右边也有一个同样的漏光区域。最后重建工程,这个现象消失了,再比对代码,是这一句:
this.TransparencyKey = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
去掉或者换成White就好了。之前在调样式的时候设置过这个属性,开始不懂,以为是设置窗体透明的,真正的用法是表示要在窗体上透明显示的颜色。而图片下方的区域有的颜色刚好被透明就出现了上面奇怪纹理的漏光现象。
MSDN:https://msdn.microsoft.com/zh-cn/system.windows.forms.form.transparencykey
2.图片自适应。
测试人电脑上显示结果都正常,除了PM的电脑显示是这样个样子
当时心中就想,这是什么鬼啊。过去发现,PM的桌面图标都比较大,他电脑里面的设置是这样的 控制面板--外观个性化--显示
改成较小就正常了,但不能要求客户这样吧。图片不自适应了,回去修改了一句:开始选的center.
this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
添加背景图片之后,美工的图片大小匹配也没有注意到这个问题。还是要平铺的好。
3.选中黑框。
虽然说是将border设置成0,颜色透明,但在按Tab切换的时候,还是出现了选中的黑框。
焦点状态就是有个印记,折中的办法:和背景颜色相近的Border颜色,不留心还不好发现。
button1.FlatAppearance.BorderColor
最后,换成PictureBox 没有了这个问题。
小结:对于改bug这件事情,只要写程序,基本上天天都会经历,而得出的经验是:凡是bug,必有原因。有时候看似诡异的bug,可能原因很简单。有时候一个人思维太僵化,几个人讨论一下,就会发现问题在哪儿。漏光的那个问题,我嘀咕了几天,也找不到什么资料,最后和同事一起解决了,发现只是属性设置的问题。
书山有路群:452450927
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义