2017-12-18 6 views
1

SETの値をコントロールの可視プロパティに読み取るメカニズムはありますか?上記の例でControl.Visibleのクエリセット/内部値

ChildControl1.Visible = true; 
ChildControl2.Visible = false; 

ParentControl.Visible = false; 

bool childControl1Visible = ChildControl1.Visible 
bool childControl2Visible = ChildControl2.Visible 

起因ParentControlの視認性にレンダリングされませんどちらとして、childControl1VisibleとchildControl2Visible両方がfalseを返すであろう。

親コントロールに設定されている値に関係なく、子コントロールがそれ自体が可視か真かのいずれかに設定されているかどうかを判断する方法を探しています。

答えて

1

内部値を取得する方法はありません。internalビットベクトルflagssee source)の内部に保存されています。

可視プロパティを別の場所で手動で追跡するか、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; } 
} 

より良いプロパティー名を選択してください。

もう1つの欠点は、リフレクションを使用して内部値にアクセスすることです。その方法については、hereを参照してください。

関連する問題