按钮可见性保持默认值的奇怪问题

时间:2012-06-22 13:01:17

标签: c#

我在C#中有一个非常大的ASP.NET应用程序。

这个问题既简单又困难/奇怪。无论代码在哪里,我都尝试更改按钮的可见性,但无论我将其设置为true还是false,它都会保留其默认值。

我不确定是什么导致这种情况所以我想我可能会在这里寻求意见。

1 个答案:

答案 0 :(得分:0)

Visible属性从父控件继承它的状态。

例如:

<asp:Panel ID="Panel1" Visible="false" runat="server">
   <asp:Button ID="Button1" runat="server" Text="click me" />
</asp:Panel>

只要容器控件Button不可见,Panel1将永远不会显示。

Control.Visible的实施:

public virtual bool Visible
{
    get
    {
        return !this.flags[16] 
        && (this._parent == null || this.DesignMode || this._parent.Visible);
    }
    set
    {
        // ...
    }
}

所以当parent != null && !visible时,子控件是不可见的。