标签: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。所以会显示出来。
标签:designer 原因 定义 改变 遇到 变量 visible false 开发环境
原文地址:https://www.cnblogs.com/cw1565/p/9506057.html