码迷,mamicode.com
首页 > Web开发 > 详细

DotNet开发中遇到的一些坑,记录一下

时间:2018-08-20 16:35:00      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:designer   原因   定义   改变   遇到   变量   visible   false   开发环境   

1. DotNet版本:4.0

开发环境:VS2010

现象:自定义控件,开放属性设置子控件C的可见性,set方法中进行了判断,设置值与当前值相同则直接return;在其他控件中调用时,Designer文件中默认为True,后将控件的父控件设置成一个不可见的picturebox,再设置子控件的Visible为False。再将父控件picturebox设为可见时,该自定义控件的子控件也是可见的。

原因分析:(仅猜测)控件的父控件可见性置为False时,其所有子控件的Visible也都会置为False(跟自定义控件的代码发现会如此),但会有临时变量记录子控件之前的可见性,C的Visible在临时变量记录为True,当前属性值为False。在后面设置子控件的Visible为False时,因此时读到的Visible就是Fasle,代码直接返回(进行了判断),临时变量里没有进行改变,所以在修改父控件的可见性为True后,所有子控件的可见性根据临时变量中所记录的值重新设置,C的Visible还原为True。所以会显示出来。

 

DotNet开发中遇到的一些坑,记录一下

标签:designer   原因   定义   改变   遇到   变量   visible   false   开发环境   

原文地址:https://www.cnblogs.com/cw1565/p/9506057.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!