![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
C#怎么将隐藏的控件一次性全部隐藏和显示出来
我正在用C#弄一个界面,然后界面上有两个按钮a和b,还有A、B、C三个LinkLabel控件,我想当按下a的时候A、B、C隐藏,当按下b的时候A、B、C又显示出来,请问怎...
我正在用C#弄一个界面,然后界面上有两个按钮a和b,还有A、B、C三个LinkLabel控件,我想当按下a的时候A、B、C隐藏,当按下b的时候A、B、C又显示出来,请问怎么一次性把它们显示和隐藏?(除了用Hide和Show将它们一个个隐藏和显示外有没其它办法?感觉这样代码太多太累赘了)
展开
2个回答
展开全部
1、如果在web中
一、使用Panel作为容器
panel1:
<span style="font-size:14px;"><asp:Panel ID="Panel1" runat="server" Font-Size="Medium">
<span id="sayHello">您好,<span><%=Session["UserName"] %></span></span>
<asp:HyperLink ID="hlPersonalSpace" runat="server" NavigateUrl="~/NeedHelpSpace.aspx" Target="_self">个人空间</asp:HyperLink>
<asp:HyperLink ID="hlInfo" runat="server">消息</asp:HyperLink>
<asp:LinkButton ID="hlQuit" runat="server" OnClick="hlQuit_Click" >退出</asp:LinkButton>
</asp:Panel></span>
panel2:
<span style="font-size:14px;"><asp:Panel ID="Panel2" runat="server" Font-Size="Medium">
您好,游客
<a href="#" onclick="$('#w').window('open')">登陆</a>
<asp:HyperLink ID="hlRegister" runat="server" NavigateUrl="~/Register.aspx" Target="_blank">注册</asp:HyperLink>
<asp:HyperLink ID="hlSearch" runat="server">帮助</asp:HyperLink>
</asp:Panel></span>
后台代码:
<span style="font-size:14px;"> if (Session["UserName"] == null)
{
Panel2.Visible = true;
Panel1.Visible = false;
}
else
{
Panel1.Visible = true;
Panel2.Visible = false;
}</span>
二、使用div作为容器
div1:
<span style="font-size:14px;"><div id="loginBefore" runat ="server" style="font-size:medium">
<span id="topUser" style="padding-right:25px;">你好游客
<a href="javascript:void(0)" onclick="$('#w').window('open')">登录</a>
<a href="Register.aspx">注册</a>
<a href="#">搜索</a>
</span>
</div></span>
div2:
<span style="font-size:14px;"><div id="loginAfter" runat="server" style="font-size:medium" >
<span id="topUser1" style="padding-right:25px;">您好,<span><%=Session["UserName"] %></span> |
<a href="UserLogList.aspx?id=<%=Session["UserID"] %>" >个人空间</a> |
<a href="UnreadEmail.aspx">消息</a> |
<a href="#" onclick="loginQuit()">退出</a>
</span>
</div></span>
C#后台调用方法:
<span style="font-size:14px;"> if (Session["UserName"] == null)
{
loginBefore.Style["Display"] = "Block";
loginAfter.Style["Display"] = "None";
}
else
{
loginBefore.Style["Display"] = "None";
loginAfter.Style["Display"] = "Block";
}
</span>
如果使用Js直接调用的话,可以操控div显隐的方法如下:
<span style="font-size:14px;"> document.getElementById("loginAfter").style.display = "none";//隐藏
document.getElementById("loginBefore").style.display = "block";//显示</span>
2、在winform中
只需将控件的属性visible改为false,即可实现隐藏
如:隐藏this.button1.visible = false;
要显示改成true
展开全部
private void showlink(Boolean flag)
{
foreach (Control c in this.Controls)
if (c is LinkLabel) c.Visible = flag;
}
点按钮a的时候就是showlink(false),点b就是showlink(true)
追问
改变它的Visble值吗?这样也是每个控件都需要一句代码改变值来隐藏和显示吧?我的意思是能不能一两句代码就实现,不用一个控件一句代码重复?
追答
你是不是没看明白,上面代码点a的时候,无论窗体上有多少个linklabel控件都会被一次隐藏
注:在高版本的.net中,上面的showlink中的代码也可以换成
this.Controls.OfType<LinkLabel>().ToList().ForEach(c => c.Visible = flag);
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询