【吉光片羽】奇怪的Bug-细节的问题
这几天用Winform开发了一个小界面,遇到几个奇怪的问题,记录一下。
1.背景图片漏光。

当时很是奇怪,以为是图片的问题,让美工重新发,改成jpg也都存在。很是奇怪,原图这个地方肉眼看是不透明的,而且这个漏光还是对称的,在图片的右边也有一个同样的漏光区域。最后重建工程,这个现象消失了,再比对代码,是这一句:
this.TransparencyKey = System.Drawing.Color.FromArgb(((int)(((byte)()))), ((int)(((byte)()))), ((int)(((byte)()))));
去掉或者换成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,可能原因很简单。有时候一个人思维太僵化,几个人讨论一下,就会发现问题在哪儿。漏光的那个问题,我嘀咕了几天,也找不到什么资料,最后和同事一起解决了,发现只是属性设置的问题。
【吉光片羽】奇怪的Bug-细节的问题的更多相关文章
- 【JavaScript吉光片羽】遭遇IE8
最初对做兼容性的认知只停留在UI层面,但其实UI层面都还好,因为毕竟你可以直接看得见现象,更为重要的是在JavaScript层面,因为这个部分涉及到功能性,前者最多是体验性的问题.下面扯一下这几天遇到 ...
- 【JavaScript吉光片羽】--- 滑动条
灯光的亮度控制需要一个滑动条,先借用lamp源码中Bar: var Bar = function (opt) { var defaults = { $id: "", // 进度条d ...
- 【吉光片羽】js横向滚动与浮动导航
1.横向滚动,这个方法是见过最简洁的了. #demo { background: #FFF; overflow: hidden; border: 1px dashed #CCC; width: 117 ...
- 【吉光片羽】ie6兼容性的几个点
1.浮动换行.自己写个导航,li向左浮动,到ie6下全部错开了. --> 还是在现有bootstrap框架的基础上修改样式保险一些. <div id="mymenu" ...
- 【吉光片羽】MVC 导出Word的两种方式
1.直接将Html转成Word.MVC自带FileResult很好用.Html中我们也可以嵌入自己的样式. html: <div id="target"> <st ...
- 【吉光片羽】之 Web API
1.在asp项目中直接添加apiController,需要新增Global.asax文件.再增加一个webapiConfig,如果需要访问方式为"api/{controller}/{acti ...
- 奇怪的BUG
熟语说“常在河边走,哪能不湿鞋”,在现实中我想说:“代码写多了,总会遇到奇怪的bug”,遇到bug不可怕,可怕的是不自己不知道这么解决,有些bug能当时解决,有些在自己知识水平提高后知道如何解决.还有 ...
- 奇怪的bug(ant-design)
ant-motion模板代码启动报错. 多了一层 import 会导致 less 编译的顺序发生变化,很奇怪的问题,还需要再深入看看.目前 ant-d.less 可以先改成这样来解决: + @impo ...
- 小程序制作中 一个奇怪的bug
事情是这样的:原一个购物车 合并本地数据和服务器 数据方法如下 ,正常测试没有问题,当每次重新登录,会调用到这个方法,就会莫名其妙的卡主,debug 发现 a1.length =77731508 导致 ...
随机推荐
- JavaScript 之 for语句
示例: for(var i = 6; i--;){ console.log(i); } 这里的执行结果是5,4,3,2,1,0 W3C有关for的解释这里 for(语句1; 语句2;语句3){ con ...
- iOS判断数组不为空
用([array count]==0 )来判断是否为空,都是坑,如果array为空的话,执行count就会直接报错,程序崩溃退出. 正确判断NSArray是否为空的方法: if(array != ni ...
- 20145229&20145316 《信息安全系统设计基础》 实验二 固件设计
实验封面 实验步骤 1.配置环境 开发环境的配置同实验一 2.拷贝文件 将实验代码拷贝到共享文件夹中 3.在虚拟机中编译代码 4.下载调试 在超级终端中运行可执行文件pthread,可得实验结果如图 ...
- 如何在fedora下安装fcitx和搜狗拼音
过程参考了: http://blog.csdn.net/yang1982_0907/article/details/17100409 下载搜狗deb包:http://packages.linuxdee ...
- javascript高级特性
01_javascript相关内容02_函数_Arguments对象03_函数_变量的作用域04_函数_特殊函数05_闭包_作用域链&闭包06_闭包_循环中的闭包07_对象_定义普通对象08_ ...
- 通过通知监听键盘的状态来改变View的位置
#import "ViewController.h" @interface ViewController ()<UITextFieldDelegate>{ UIV ...
- Hibernate+jsp+struts+spring做增删该查,
同样还是web项目,这里只做了一张表,做一个测试,例子.主要是建Hibernate 的时候要非常注意,有时间了整理一下建Hiberbnate 的时候需要注意的事项 这里我是建了5个包,其实只要四个就好 ...
- Trie树的创建、插入、查询的实现
原文:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=28977986&id=3807947 1.什么是Trie树 Tr ...
- GridView基础知识
首先,gridview是封装好的,直接在设计界面使用,基本不需要写代码: 1.绑定数据源 GridView最好与LinQDatasourse配合使用,相匹配绑定数据: 2.外观控制 整体控制 自动选择 ...
- 1306. Sorting Algorithm 2016 12 30
1306. Sorting Algorithm Constraints Time Limit: 1 secs, Memory Limit: 32 MB Description One of the f ...