c# panel里面嵌入窗体
现有一个父窗体name是Parent,子窗体name是Son,要让Son嵌入在Parent的Panel内,则父窗体的初始加载代码如下:private void Parent_Load(object sender, System.EventArgs e){this.IsMdiContainer=true;//设置父窗体是容器Son mySon=new Son();//实例化子窗体mySon.M
现有一个父窗体name是Parent,子窗体name是Son,要让Son嵌入在Parent的Panel内,则父窗体的初始加载代码如下:
private void Parent_Load(object sender, System.EventArgs e){this.IsMdiContainer=true;//设置父窗体是容器
Son mySon=new Son();//实例化子窗体
mySon.MdiParent=this;//设置窗体的父子关系
mySon.Parent=pnl1;//设置子窗体的容器为父窗体中的Panel
mySon.Show();//显示子窗体,此句很重要,否则子窗体不会显示}
今天在做 项目 时候遇到一个问题,窗体分为左右两部分,要求在左边栏点击按钮时,右边动态加载窗体
最后想到用panel实现,经历几次失败,并查找资料后,终于搞定
说明:如果多次切换需加入 panel.clear();清空原有panel内容
环境:C# VS2008
方法一:通过给panel加载子元素实现
Form2 form =
new Form2();
form.FormBorderStyle = FormBorderStyle.None; //隐藏子窗体边框(去除最小花,最大化,关闭等按钮)
form.TopLevel =
false; //指示子窗体非顶级窗体
this.panel1.Controls.Add(form);//将子窗体载入panel
form.Show();
方法二:指定父容器实现
Form2 form=new Form2();
form.MdiParent=this;//指定当前窗体为顶级Mdi窗体
form.Parent=this.Panel1;//指定子窗体的父容器为
Frm.FormBorderStyle = FormBorderStyle.None;//隐藏子窗体边框,当然也可以在子窗体的窗体加载事件中实现
panelform.Show();
实际上你把窗体加入了panel,那么这个窗体已经只是个控件了,和普通的textbox控件没什么两样,那么你能告诉我如何关闭panel中的textbox控件吗,好像没这么一说,因此,实际上关闭panel的中子窗体(form),就是从panel中移除子窗体form:代码如下:
Form2 form = new Form2();//要声明为成员变量哦
//添加进panel的按钮,你应该已经实现了
private void button1_Click_1(object sender, EventArgs e)
{
form.TopLevel = false;//这就是使你窗体变控件的一步
form.Dock = DockStyle.Fill;
form.FormBorderStyle = FormBorderStyle.None;
form.Parent = panel1;//你panel的id
form.Show();
}
//关闭panel中子窗体的按钮
private void button2_Click(object sender, EventArgs e)
{
panel1.Controls.Remove(form);//其实就是一个控件的移除
}
- private void 话术管理ToolStripMenuItem_Click(object sender, EventArgs e)
- {
- FormScripts formscripts = new FormScripts();
- formscripts.TopLevel = false;
- formscripts.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
- formscripts.Dock = DockStyle.Fill;
- formscripts.Parent = this.panel1;
- //formscr
- private void 话术管理ToolStripMenuItem_Click(object sender, EventArgs e)
- {
- FormScripts formscripts = new FormScripts();
- formscripts.TopLevel = false;
- formscripts.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
- formscripts.Dock = DockStyle.Fill;
- formscripts.Parent = this.panel1;
- //formscripts.MdiParent = this;//直接弹出一个新窗体
- formscripts.Show();
- formscripts.BringToFront();//如果需要在panel1里面显示不同的窗体,就要加这句,这样在切换panel1里面显示的窗体时,窗体才能显示出来
- }
现有一个父窗体name是Parent,子窗体name是Son,要让Son嵌入在Parent的Panel内,则父窗体的初始加载代码如下:
private void Parent_Load(object sender, System.EventArgs e)
{
this.IsMdiContainer=true;//设置父窗体是容器
Son mySon=new Son();//实例化子窗体
mySon.MdiParent=this;//设置窗体的父子关系
mySon.Parent=pnl1;//设置子窗体的容器为父窗体中的Panel
mySon.Show();//显示子窗体,此句很重要,否则子窗体不会显示
}
更多推荐
所有评论(0)