c# 两个panel的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# 两个panel的问题相关的知识,希望对你有一定的参考价值。
我要实现的是form上有两个按钮,有一个区域为panel区,有两个panel。当点按钮1时,panel区域显示panel1,panel2隐藏;当点按钮2时,panel区域显示panel2,panel1隐藏。(两个panel区域一般大小)。
可是现在是:
当点按钮1时,panel区域显示panel1,panel2隐藏;当点按钮2时,panel1与panel2全部隐藏。
我知道是把panel2放在panel1里了 可是怎么不把他们放在一起呢?大小还一般大。
splitContainer能把窗体分割成三部分或者更多的部分吗?
//form.Load事件中
this.splitContainer1.Panel2Collapsed = true;
//button1.click事件中
this.splitContainer1.Panel1Collapsed = false;
this.splitContainer1.Panel2Collapsed = true;
//button2.click...
this.splitContainer1.Panel2Collapsed = false;
this.splitContainer1.Panel1Collapsed = true;
不可以分三个,但你可以在splitcontainer里嵌套splitcontainer
不过这样会让控制起来麻烦点 参考技术A 用一个split分开 参考技术B 用他的Visible 熟悉
通过判断来显示相应的panel
panel1.Visible = false;
panel2.Visible = true;
C#如何获得panel中的控件
哪位朋友知道怎么获得panel中的一个控件呀?我在panel上有个datagrid的控件,我想在panel获得这个控件
要了解他的父容器,或者了解他得某一个特性。
简单举例我在窗体中找一个Panel控件,我只知道他的背景颜色是Color.Red,现在要把他的颜色改成黑色,也不知道他到底放在几个panel里面,就要用到下面语句:
void ViewCtl(Control ctl)if(ctl is Panel)
if(ctl.BackColor==Color.Red)
ctl.BackColor=Color.Black;
void ViewForm(Control ctl)
if(ctl.Controls.Count>0)//如果他里面有控件
foreach(Control ctl in ctl.Controls)//遍历窗体所有控件
ViewCtl(ctl); //进行操作
ViewForm(ctl); //循环事件
else
break; //当循环到实在没有控件可找的时候停止
如上,ViewForm就是在找到背景为红色的panel,把他染成黑色。
if(Panel1.Controls[i].GetType()==Typeof(datagrid))
datagrid dg=(datagrid)(Panel1.Controls[i]);
//dg就是panel中唯一的一个datagrid,很久没写代码了,不知道对不对
本回答被提问者和网友采纳 参考技术B Windows 窗体 Panel 控件用于为其他控件提供可识别的分组。通常,使用面板按功能细分窗体。例如,可能有一个订单窗体,它指定邮寄选项(如使用哪一类通营承运商)。将所有选项分组在一个面板中可向用户提供逻辑可视提示。在设计时所有控件都可以轻松移动 -- 当移动 Panel 控件时,它包含的所有控件也将移动。分组在一个面板中的控件可以通过面板的 Controls 属性进行访问。此属性返回一批 Control 实例,因此,通常需要将该方式检索得到的控件强制转换为它的特定类型。
若要显示滚动条,请将 AutoScroll 属性设置为 true。也可以通过设置 BackColor、BackgroundImage 和 BorderStyle 属性自定义面板的外观。有关 BackColor 和 BackgroundImage 属性的更多信息,请参见“如何设置 Windows 窗体面板的背景”。BorderStyle 属性确定面板轮廓为无可视边框 (None)、简单线条 (FixedSingle) 还是阴影线条 (Fixed3D)。 参考技术C 代码如下:
private void button2_Click(object sender, EventArgs e)
MessageBox.Show(panel1.Controls.Count+"");
参考技术D panel.Controls
以上是关于c# 两个panel的问题的主要内容,如果未能解决你的问题,请参考以下文章
C# 两个重叠panel容器如何使用button转换上下层显示z在窗体的最前端?