2009-07-06 11 views
4

私のページにはユーザーコントロールがあります。なぜ私のusercontrolはfalseにvisibleプロパティをリセットし続けますか?

このページでは、visibleプロパティはfalseに設定されています。

OnPreRenderイベントでは、visibleプロパティをtrueに設定しました。

これはコード行を実行しますが、実際には何も変更されません。 (可視でもfalseのままです)

この全く同じメソッドは、他のすべてのコントロールで機能し、このコントロールには特別なことはありません。

+1

郵便番号:だから私はこの問題を解決するために、コードのこの小さな平和を作りました。あなたが言っていることは、それに直面すると不可能に聞こえるので、コードを見る必要があります。 – tvanfosson

答えて

10

このコントロールを含むコントロールの可視プロパティを確認します。

Visible = Trueに設定すると、Visible == Trueを意味するわけではなく、親コントロールがFalseの場合でもFalseを返します。

ただし、他の人が問題の原因を突き止めるのに役立つように、コードの例を投稿する必要があります。

+0

私は馬鹿です。私はそれを知っていたが、チェックするのを忘れた。 ありがとうございます。これでソートされました。 (親コントロールはビットを隠していたので、示唆したように) – tim

1

私は同じ問題に直面しました...はい、問題は親が見えないことです。

public static void ForceVisibleState(Control control, bool visible) 
    { 
    if (!visible) 
    { 
     control.Visible = false; 
    } 
    else 
    { 
     // Must set all parents to 'visible = true' 
     List<Control> parents = new List<Control>(); 
     while (control != null && 
       !control.Visible) 
     { 
      parents.Insert(0, control); 
      control = control.Parent; 
     } 
     foreach(Control parent in parents) 
     { 
      parent.Visible = true; 
     } 
    } 
    } 
関連する問題