winform panel上面的控件如何隐藏?

todototry 2009-12-15 05:21:45
我用多个panel来模拟tabcontrol标签页的切换,设置visible属性来实现的
现在有如下几个问题:
1、panel上添加控件只能通过代码Add()么,不能用可视化工具么(初用vs2008,不知道在哪里把控件添加到指定的panel中)
2、当panel的visible属性为false时,其上面的控件如何才能隐藏(不能自动么)

谢谢解答!!
...全文
1045 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
水目 2009-12-15
  • 打赏
  • 举报
回复
我也做过个类似的 差不多 直接拉控件上去到panel就可以了 然后控制显示

位置不理解意思 好像 加控件上去的时候 每个panel上边的控件不用自己设置坐标吧
todototry 2009-12-15
  • 打赏
  • 举报
回复
搞定了,谢谢,一个大的panel放进一个小的panel里面去了
在工具箱,这样加的啊
那我那些控件的坐标位置怎么办,全部计算出来?
因为我在一个form里面用多个panel来实现切换页面
每个panel的实际运行大小都和form差不多大
那每个上面的控件摆放怎么处理才好
hhc123 2009-12-15
  • 打赏
  • 举报
回复
this.panel1.Controls.Add(this.panel2);
houyizhinv 2009-12-15
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 hhc123 的回复:]
难道你的工具箱里没控件可以拉吗?
panel是个容器,它不可见,那在它里面的控件也是不可见的
[/Quote]
YES
hhc123 2009-12-15
  • 打赏
  • 举报
回复
那我不知道啊,我是可以的啦,可能你的代码有问题吧
houyizhinv 2009-12-15
  • 打赏
  • 举报
回复
你用panel的时候 不是要拖一个框框出来么
拖的时候包含在里面的控件都是属于panel的
以后再建立的控件,如果拖进去也是的
还可以去Designer.cs里面去找撒

这个是我Designer.cs里面的panel,后面的括号里面的控件就是属于它的
this.panel1.Controls.Add(this.checka9);
this.panel1.Controls.Add(this.checka8);
this.panel1.Controls.Add(this.checka7);
this.panel1.Controls.Add(this.checka6);
this.panel1.Controls.Add(this.checka5);
this.panel1.Controls.Add(this.checka4);
this.panel1.Controls.Add(this.checka3);
this.panel1.Controls.Add(this.checka2);
hhc123 2009-12-15
  • 打赏
  • 举报
回复
难道你的工具箱里没控件可以拉吗?
panel是个容器,它不可见,那在它里面的控件也是不可见的
todototry 2009-12-15
  • 打赏
  • 举报
回复
我试过,直接panel1.Visible = false;
但是panel2还是会显示
hhc123 2009-12-15
  • 打赏
  • 举报
回复
不是跟你说了吗?不用那样子
只要把panel设成不可见就行了
liujintaozyc 2009-12-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hhc123 的回复:]
C# codeforeach(Control alinthis.Panel.Contorls)
{
al.visible=false;
}
[/Quote]
todototry 2009-12-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hhc123 的回复:]
晕,看错了,只要panel设置成不可见他里面的控件也一样不可见
[/Quote]

什么样的概念,才是“他里面的控件”
你的panel中的控件是如何加载上去的,我是在主窗体form创建两个panel1和panel2,
在form.designer中,用panel1.Add(this.panel2)来加上panel2的

问题在哪里
todototry 2009-12-15
  • 打赏
  • 举报
回复
void hidePanel(Panel px)
{
px.Visible = false;
foreach (Control subControlInPanel in px.Controls)
{
subControlInPanel.Visible = false;
}
}
这是我的代码不能实现功能
hhc123 2009-12-15
  • 打赏
  • 举报
回复
晕,看错了,只要panel设置成不可见他里面的控件也一样不可见
qqiuzaihui 2009-12-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hhc123 的回复:]
C# codeforeach(Control alinthis.Panel.Contorls)
{
al.visible=false;
}
[/Quote]
hhc123 2009-12-15
  • 打赏
  • 举报
回复
foreach(Control al in this.Panel.Contorls)
{
al.visible=false;
}

110,534

社区成员

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

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

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