这几天用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-细节的问题的更多相关文章

  1. 【JavaScript吉光片羽】遭遇IE8

    最初对做兼容性的认知只停留在UI层面,但其实UI层面都还好,因为毕竟你可以直接看得见现象,更为重要的是在JavaScript层面,因为这个部分涉及到功能性,前者最多是体验性的问题.下面扯一下这几天遇到 ...

  2. 【JavaScript吉光片羽】--- 滑动条

    灯光的亮度控制需要一个滑动条,先借用lamp源码中Bar: var Bar = function (opt) { var defaults = { $id: "", // 进度条d ...

  3. 【吉光片羽】js横向滚动与浮动导航

    1.横向滚动,这个方法是见过最简洁的了. #demo { background: #FFF; overflow: hidden; border: 1px dashed #CCC; width: 117 ...

  4. 【吉光片羽】ie6兼容性的几个点

    1.浮动换行.自己写个导航,li向左浮动,到ie6下全部错开了. --> 还是在现有bootstrap框架的基础上修改样式保险一些. <div id="mymenu" ...

  5. 【吉光片羽】MVC 导出Word的两种方式

    1.直接将Html转成Word.MVC自带FileResult很好用.Html中我们也可以嵌入自己的样式. html: <div id="target"> <st ...

  6. 【吉光片羽】之 Web API

    1.在asp项目中直接添加apiController,需要新增Global.asax文件.再增加一个webapiConfig,如果需要访问方式为"api/{controller}/{acti ...

  7. 奇怪的BUG

    熟语说“常在河边走,哪能不湿鞋”,在现实中我想说:“代码写多了,总会遇到奇怪的bug”,遇到bug不可怕,可怕的是不自己不知道这么解决,有些bug能当时解决,有些在自己知识水平提高后知道如何解决.还有 ...

  8. 奇怪的bug(ant-design)

    ant-motion模板代码启动报错. 多了一层 import 会导致 less 编译的顺序发生变化,很奇怪的问题,还需要再深入看看.目前 ant-d.less 可以先改成这样来解决: + @impo ...

  9. 小程序制作中 一个奇怪的bug

    事情是这样的:原一个购物车 合并本地数据和服务器 数据方法如下 ,正常测试没有问题,当每次重新登录,会调用到这个方法,就会莫名其妙的卡主,debug 发现 a1.length =77731508 导致 ...

随机推荐

  1. .NET entityframework for mysql ,datetime字段存储值时有误差

    昨天Tester发现数据有问题,大部分时间“datetime类型”都多了一秒,很少一部分数据的时间能完全对上(年月日时分秒),因为缺少关键日志,就各种排查,最后发现在调用Savechange方法前一刻 ...

  2. OpenMP并行构造的schedule子句详解 (转载)

    原文:http://blog.csdn.net/gengshenghong/article/details/7000979 schedule的语法为: schedule(kind, [chunk_si ...

  3. linux 定时清理session

    php session 运营想让用户登陆网站就能永久保持登陆会话,感觉这是扯淡,因为视频播放1小时,所以我设置了两小时过期. 但是用户过多,导致session文件大量存储.产生上百万千万.服务器空间很 ...

  4. [OSI]网络间通信流程

    PC 连接交换机A,组成内网.DNS Serv 和 Web Serv 连接交换机B 组成外网. 示意图: 内网通信 PC1 到 PC2: PC1 发送的数据先到交换机A,交换机A没有ARP地址缓存表, ...

  5. CAD二次开发 - 可缩放块(四)

    1.说明 可进行缩放性注释的对象有:文字.标注.图案填充.公差.多重引线.块及属性. 2.为图形添加.删除注释比例步骤 1)使用AnnotationScale类(在DatabaseServices命名 ...

  6. WebView cookie 管理

    在Android应用程序中经常会加载一个WebView页,如果需要客户端向WebView传递信息,比如Cookie,也是可以的. 需要应用程序先将Cookie注入进去,打开该网页时,WebView会将 ...

  7. 利用office2000组件进行填充打印报不支持集合。 (Exception from HRESULT: 0x80020011 (DISP_E_NOTACOLLECTION))

    环境:win2008 64位+.net4.0 +office2000 错误提示: 不支持集合. (Exception from HRESULT: 0x80020011 (DISP_E_NOTACOLL ...

  8. 一个实现了View接口的Fragment

    小程序并不新鲜,模式上先有百度轻应用,后有支付宝的各类小服务,再来还有腾讯自家QQ右下角的应用宝:技术上也就是FaceBook RN的那一套.一个技术上无创新,形式上无创意的事物,凭什么勾起了开发者们 ...

  9. React Ntive 学习手记

    React使今年来比较热门的前端库,之所以说是库呢,因为React.js是应用于MVC中的V层, 它并不是一个完整的MVC框架,所以,我也不知称之为框架了. 不过这并不影响React的火热. 混合应用 ...

  10. TTL 生存时间介绍 (转)

    TTL: (Time To Live)生存时间,是IP协议包中的一个值,它告诉网络路由器包在网络中的时间是否太长而应被丢弃.有很多原因使包在一定时间内不能被传递到目的地.例如,不正确的路由表可能导致包 ...