怎么解决所有panel全部隐藏?

禁用F3 2011-03-26 03:30:53
winform里面有多个Panel容器,
法我要只显示panel1容器.其它的panel全部隐藏,
这个其它的用什么办法做.
...全文
505 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
Yosum 2011-03-27
  • 打赏
  • 举报
回复
遍历循环,如果只是这样的话.
ycproc 2011-03-27
  • 打赏
  • 举报
回复
foreach (Control contr in this.Controls)
{
if (contr is Panel)

contr.Visible = false;
}


遍历所有的Panel 控件

然后赋予隐藏属性
boringame 2011-03-27
  • 打赏
  • 举报
回复


可以使用便利:
var panals=Controls.Where(c=>c.Name.StartWith("你的命名前缀"));

foreach(var c in pannals){
//这里便利你的pannal
}

《Csdn收音机》,让哥不只是传说!
j2EEhoulu 2011-03-27
  • 打赏
  • 举报
回复
你把panel的命名弄的规则一点,然后就可以遍历
boringame 2011-03-27
  • 打赏
  • 举报
回复
cnxry 2011-03-27
  • 打赏
  • 举报
回复
补充说明下

可以遍历窗体中所有的textbox,numercupdown,checkbox,包括groubbox里的
cnxry 2011-03-27
  • 打赏
  • 举报
回复
。。。呃
学到一招,做了几年c#,一直不知道有 is 这个关键字,长见识了,哈哈

顺便提供自己代码里的判断方法

 private void clearInput(Control control)
{
string controlTypeString="";

foreach (Control c in control.Controls)
{
controlTypeString=c.GetType().ToString();
switch (controlTypeString)
{
case "System.Windows.Forms.TextBox":
((TextBox)c).Text = string.Empty;
break;
case "System.Windows.Forms.CheckBox":
((CheckBox)c).Checked = false;
break;
case "System.Windows.Forms.NumericUpDown":
((NumericUpDown)c).Value = decimal.Parse("0");
break;
case "System.Windows.Forms.GroupBox":
clearInput(c);
break;
}
}
}
八零末愤青 2011-03-26
  • 打赏
  • 举报
回复
只能循环遍理了
子夜__ 2011-03-26
  • 打赏
  • 举报
回复
=要遍历所有的panel然后设置visible
sxldfang 2011-03-26
  • 打赏
  • 举报
回复

Panel就是容器啊,把100个Panel放到 PanelA中,则

PanelA.Visible=false;后,其中的100个Panel也就都看不见了。
架构成长指南 2011-03-26
  • 打赏
  • 举报
回复
foreach (Control contr in this.Controls)
{
if (contr is Panel)

contr.Visible = false;
}
李亚超 2011-03-26
  • 打赏
  • 举报
回复
+1
[Quote=引用 6 楼 jinfengyiye 的回复:]

C# code

foreach (Control c in Controls)
{
if (c is Panel)
{
((Panel)c).Visible = false;
}
}

……
[/Quote]
mwsz_666 2011-03-26
  • 打赏
  • 举报
回复
当用户选择panel的时候,不是处罚一个点击事件嘛.你写一个方法是隐藏界面上所有panel的,然后用户点击的时候先调用个那方法将所有的隐藏起来,然后在显示该显示的嘛.

隐藏panel的方法是 ,遍历窗体所有的控件,如果这个控件的类型是panel类型的,就设置隐藏.
gw6328 2011-03-26
  • 打赏
  • 举报
回复

foreach (Control c in Controls)
{
if (c is Panel)
{
((Panel)c).Visible = false;
}
}

panel1.Visible = true;
JTZP75715 2011-03-26
  • 打赏
  • 举报
回复
你是不是通过按钮控制panel的显示和隐藏?
禁用F3 2011-03-26
  • 打赏
  • 举报
回复
就是呀.可一个一个设有点麻烦,看有没有好的方法,不需要一个一个去设.
JTZP75715 2011-03-26
  • 打赏
  • 举报
回复
可以设置panel的visible属性来控制panel的显示和隐藏,
你要显示panel1隐藏其他panel,就将panel1的visible属性设为true,将其他panel的visible属性设为false
禁用F3 2011-03-26
  • 打赏
  • 举报
回复
加载人时候只显示一个是可以,可以不同的PANEL显示就麻烦了.
所以看有什么办法
当用户选择哪个panel时自动把其它的全隐藏掉,我一个一个写显示属性,太麻烦了.想知道有没有简单的方法.
creatdatabase 2011-03-26
  • 打赏
  • 举报
回复
在第一次加载的时候,你就先设置第一个panel为ture其他的为false就可以了,你试一试

110,502

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧