是否有机制将SET的值读取到控件的visible属性?
ChildControl1.Visible = true;
ChildControl2.Visible = false;
ParentControl.Visible = false;
bool childControl1Visible = ChildControl1.Visible
bool childControl2Visible = ChildControl2.Visible
在上面的示例中,childControl1Visible和childControl2Visible都将返回false,因为ParentControl的可见性都不会呈现。
我正在寻找一种方法来确定子控件是否已经设置为可见的true / false,而不管在任何父控件上设置的值。
答案 0 :(得分:1)
无法获取内部值 - 它全部保存在名为internal
(see source)的flags
位向量内。
您可能必须在其他地方手动跟踪visible属性,或者将控件包装在您自己的继承类中,您可以在其中覆盖Visible
属性并在其中公开值。例如:
public class MyTextBox : System.Web.UI.WebControls.TextBox
{
public bool Visible
{
get
{
return base.Visible;
}
set
{
ReallyVisible = value;
vase.Visible = value;
}
}
public bool ReallyVisible { get; private set; }
}
您可能想要选择更好的属性名称!
另一种愚蠢的方法是使用反射来访问内部值。有关这样做的方法,请参阅here。