今天看了下视频2,在主窗体中嵌入子窗体
要注意的是
1、嵌入后显示,当嵌入多个时,要清除之前的窗体
2、因此代码是先清除,再用show()方法
3、窗体嵌入在panel中,也就是control控件了
嵌入的方法
panel.controls.add(button4);//方法1
或者
button4.Parent = panel1;//方法2
之后显示窗体,,直接调用窗体的show()方法,这里不写代码了
panel中窗体的删除,有两种方法,一种是单独删除,一种是全部清除
方法一
panel.contorls.remove(button4);
方法二
panel.controls.clear();
当panel中有多种控件的时候,就不适合方法二这么粗暴了,可以尝试下面的代码
foreach(Controls item in panel.Controls)
{
if(item is Button)
panel.controls.remove(item);
}
完整的代码如下
public partial class Form1 : Form
{
private int i = 0;//i用来计算panel中的control数量
//用来统计panel中的控件的函数
private int sum(int i)
{
foreach (Control item in panel1.Controls)
{
if (item is Button)
i++;
}
return i;
}
public Form1()
{
InitializeComponent();
panel1.Controls.Add(button2);
panel1.Controls.Add(button3);
button4.Parent = panel1;
label1.Text = sum(i).ToString();
}
//删除panel中的按钮3,同时重新计算
private void button1_Click(object sender, EventArgs e)
{
panel1.Controls.Remove(button3);
label1.Text = sum(i).ToString();
}
}
删除窗体和删除按钮是一样的