查询集/ Control.Visible的内部值

问题描述 投票:1回答:1

是否有一种机制来读取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。

c# asp.net
1个回答
1
投票

没有办法获得内部值 - 它全部保存在一个名为internalflags)的see source位向量内。

您可能必须在其他地方手动跟踪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; }
}

您可能想要选择更好的属性名称!

另一种hacky方式是使用反射来访问内部值。请参阅here了解这种方法。

© www.soinside.com 2019 - 2024. All rights reserved.