怎么解决所有panel全部隐藏? winform里面有多个Panel容器,法我要只显示panel1容器.其它的panel全部隐藏,这个其它的用什么办法做. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在第一次加载的时候,你就先设置第一个panel为ture其他的为false就可以了,你试一试 加载人时候只显示一个是可以,可以不同的PANEL显示就麻烦了.所以看有什么办法当用户选择哪个panel时自动把其它的全隐藏掉,我一个一个写显示属性,太麻烦了.想知道有没有简单的方法. 可以设置panel的visible属性来控制panel的显示和隐藏,你要显示panel1隐藏其他panel,就将panel1的visible属性设为true,将其他panel的visible属性设为false 你是不是通过按钮控制panel的显示和隐藏? foreach (Control c in Controls) { if (c is Panel) { ((Panel)c).Visible = false; } } panel1.Visible = true; 当用户选择panel的时候,不是处罚一个点击事件嘛.你写一个方法是隐藏界面上所有panel的,然后用户点击的时候先调用个那方法将所有的隐藏起来,然后在显示该显示的嘛.隐藏panel的方法是 ,遍历窗体所有的控件,如果这个控件的类型是panel类型的,就设置隐藏. foreach (Control contr in this.Controls) { if (contr is Panel) contr.Visible = false; } Panel就是容器啊,把100个Panel放到 PanelA中,则PanelA.Visible=false;后,其中的100个Panel也就都看不见了。 =要遍历所有的panel然后设置visible 呃学到一招,做了几年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; } } } 补充说明下可以遍历窗体中所有的textbox,numercupdown,checkbox,包括groubbox里的 panal.Visible=false;//隐藏《Csdn收音机》支持全屏截图功能啦,快来看看吧! 你把panel的命名弄的规则一点,然后就可以遍历 可以使用便利:var panals=Controls.Where(c=>c.Name.StartWith("你的命名前缀"));foreach(var c in pannals){ //这里便利你的pannal}《Csdn收音机》,让哥不只是传说! foreach (Control contr in this.Controls) { if (contr is Panel) contr.Visible = false; }遍历所有的Panel 控件然后赋予隐藏属性 小问题 form程序的焦点问题,很烦恼 update 失效怎么回事?大家帮忙看看 [c#]datagridview遍历问题 如何将DataGrid的数据绑定转换成c#的类文件使用Sqlhelper调用!!在线等啊。急迫等!555 QQ的服务器端是如何得到客户端是否在线的呢? 两台电脑都安装了mysql,如何让一台连接到另一台上的mysql数据库 求助各路大侠,SQLServer用计算机名可连接上,用ip就连不上 到底如何实现打开目录? 关于图形识别的疑问 自定义组件的问题 请问这个sql中的update语句的执行顺序是怎样的?谢谢!
所以看有什么办法
当用户选择哪个panel时自动把其它的全隐藏掉,我一个一个写显示属性,太麻烦了.想知道有没有简单的方法.
你要显示panel1隐藏其他panel,就将panel1的visible属性设为true,将其他panel的visible属性设为false
foreach (Control c in Controls)
{
if (c is Panel)
{
((Panel)c).Visible = false;
}
} panel1.Visible = true;
{
if (contr is Panel) contr.Visible = false;
}
Panel就是容器啊,把100个Panel放到 PanelA中,则PanelA.Visible=false;后,其中的100个Panel也就都看不见了。
学到一招,做了几年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;
}
}
}
var panals=Controls.Where(c=>c.Name.StartWith("你的命名前缀"));foreach(var c in pannals){
//这里便利你的pannal
}《Csdn收音机》,让哥不只是传说!
{
if (contr is Panel) contr.Visible = false;
}遍历所有的Panel 控件然后赋予隐藏属性