一、准备步骤:
1. 创建一个Windows应用程序
2. 把默认窗口的名字为Form1(如上图)
3. 创建一个Windows窗体,为Form2(如上图)
4. 在Form1窗口中增加一个按钮button,然后增加一个Panel,双击按钮在按钮里面写事件(如下图)
双击button按钮进入点击事件
添加下代码如图
private void button1_Click(object sender, EventArgs e){Form2 frm2 = new Form2(); //实例化一个子窗口//设置子窗口不显示为顶级窗口frm2.TopLevel = false;//设置子窗口的样式,没有上面的标题栏frm2.FormBorderStyle = FormBorderStyle.None;//填充frm2.Dock = DockStyle.Fill;//清空Panel里面的控件this.panel1.Controls.Clear();//加入控件this.panel1.Controls.Add(frm2);//让窗体显示frm2.Show();}
然后生成 运行:效果图如下
二、在窗体一中new一个窗体二中的函数ShowReplayData( ),报错:System.StackOverflowException HResult=0x800703E9 Message=Exception of type 'System.StackOverflowException' was thrown.
原因:应该是错误的使用递归调用,窗体二嵌入窗体一,窗体一又使用窗体二的对象,构成了逻辑上的递归调用,删掉窗体一 new的窗体二中的函数ShowReplayData( )即可
若有不对欢迎提出