【需求】 |
点击菜单中按钮实现子窗体的一个显示,前提:使用c#语言进行开发,使用MDI窗体且使用了Panel容器。
【方法】 |
在给出大家正确的解决方法之前,我会把网络上边那些有问题的方法给大家列举出来。
有问题方法一:
private void button1_Click(object sender, EventArgs e)
{
form2 f2 =new form2();
f2.mdiparent=main;
f2.show();
}
有问题方法二:
private void button1_Click(object sender, EventArgs e)
{
form2 f2 =new form2();
f2.TopLevel=false;
panel1.controls.Add(f2);
f2.show();
}
剩下还有好几个和上边两个类似的代码,他们也能使用,但是和我们的需求不同。我们需要的是菜单的一个点击事件,所以使用上边的代码就不能实现他的功能。所以有了如下的方法。
正确方法:
首先要引用命名空间和声明SetParent函数,如下图:
接下来是点击事件的代码:
private void button1_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
f2.MdiParent = this;
f2.Show();
SetParent((int)f2.Handle, (int)this.Handle);
}
【感受】 |
山重水复疑无路,柳暗花明又一村。坚持就是胜利!!!!