C#----子窗体调用子窗体,但调用的子窗体仍属于父窗体
2011-05-15 19:52
429 查看
在MDI编程中,从父窗体调用了子窗体,会出现子窗体隶属父窗体。但当我们要从一子窗体调用另一个子窗体,并且,调用过后,这个被子窗体调用出来的子窗体,会出现隶属于父窗体的情况是什么实现的呢?
下面是针对这种情况的一个简单实现。
在一个项目中建三个窗体,分别为Form1、Form2、Form3。其中,Form1设置为父窗体,在Form1上有一个按钮button1,在这个按钮的Click事件中,实现调用Form2。在Form2上也有一个按钮button1, 在这个按钮的Click事件中,实现调用Form3。
以下是具体的代码过程,代码中作了关键注释:
Form1中的代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace MdiFormTest
{
public partial class Form1 : Form
{
//定义一个Form1的static变量SForm1
static public Form1 SForm1 = null;
public Form1()
{
InitializeComponent();
//把Form1赋给SForm1
SForm1 = this;
}
private void button1_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.MdiParent = this;
form2.Show();
}
}
}
Form2中的代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace MdiFormTest
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form3 form3 = new Form3();
//指明Form3的父窗体是Form1
form3.MdiParent = Form1.SForm1;
form3.Show();
}
}
}
以上就是对这个问题的解决。
下面是针对这种情况的一个简单实现。
在一个项目中建三个窗体,分别为Form1、Form2、Form3。其中,Form1设置为父窗体,在Form1上有一个按钮button1,在这个按钮的Click事件中,实现调用Form2。在Form2上也有一个按钮button1, 在这个按钮的Click事件中,实现调用Form3。
以下是具体的代码过程,代码中作了关键注释:
Form1中的代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace MdiFormTest
{
public partial class Form1 : Form
{
//定义一个Form1的static变量SForm1
static public Form1 SForm1 = null;
public Form1()
{
InitializeComponent();
//把Form1赋给SForm1
SForm1 = this;
}
private void button1_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.MdiParent = this;
form2.Show();
}
}
}
Form2中的代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace MdiFormTest
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form3 form3 = new Form3();
//指明Form3的父窗体是Form1
form3.MdiParent = Form1.SForm1;
form3.Show();
}
}
}
以上就是对这个问题的解决。
相关文章推荐
- C#调用子窗体后关闭自身(父窗体)
- c# winform 子窗体更新父窗体,调用父窗体的函数
- 【转】C# 子窗体如何调用父窗体的方法
- c# 【委托】子窗体调用父窗体控件实例
- c# 中释放打开图片和 子窗体调用父窗体函数
- c# 不同窗体之间传值和调用
- C# 子窗体关闭刷新父窗体
- 关于C#窗体应用程序调用google翻译api的问题
- C# 窗体间调用
- C# WinForm 窗体应用程序,调用 javascript 脚本
- [整理]c#简单调用DELPHI DLL封装窗体
- C# 打开子窗体(from2),如何关闭父窗体(from1)解决方案之一
- c# 跨窗体调用控件和参数
- C# 跨线程调用窗体控件
- c#调用其他窗体中的变量或函数
- C#之一窗体调用另一窗体属性
- C# 子窗体调用父窗体的方法
- C#2005 多线程中调用窗体控件
- 2013.5.26 在VB6.0中调用C#.dll窗体
- C#多项目间的窗体调用和传值