在我的《MDI窗体相互调用一》文章中已经说明白了如何让MDI窗口之间相互调用了。
但是在上篇文章中使用的方法是用到了”引用类型“的基本特性,下面这种方法,我用类的定义来完成上述功能。一般来说,我不赞成大家使用我的第二种方法,这里写道的第二中方法只是和大家一起探讨!
我的第二种方法是(假设主窗口为Form1,子窗口为Form2)
在主窗体中什么都不需要变化
仍然使用如下代码实现子窗体显示时,主窗体隐藏:
Form2 form2=new Form2( this); //大家会觉得好奇,怎么你这里还带有一个参数
form2.Show();
this.Hide();
而且在主窗体的其他地方,代码根本不需要任何改变,第二种方法,我们完全是在子窗体中改写代码。
在子窗体中的代码如下:
首先我们需要改变一下Form2的构造函数了,因为在Form1中出现了Form2 form2=new Form2( this);这样一句。
public partial class Form2 : Form
{
private Form1 F1 = null; //这里定义一个Form!的引用
public Form2( Form1 parentform) //这个参数是我自己加的
{
F1 = parentform; //其实这里才是关键&
但是在上篇文章中使用的方法是用到了”引用类型“的基本特性,下面这种方法,我用类的定义来完成上述功能。一般来说,我不赞成大家使用我的第二种方法,这里写道的第二中方法只是和大家一起探讨!
我的第二种方法是(假设主窗口为Form1,子窗口为Form2)
在主窗体中什么都不需要变化
仍然使用如下代码实现子窗体显示时,主窗体隐藏:
Form2 form2=new Form2( this); //大家会觉得好奇,怎么你这里还带有一个参数
form2.Show();
this.Hide();
而且在主窗体的其他地方,代码根本不需要任何改变,第二种方法,我们完全是在子窗体中改写代码。
在子窗体中的代码如下:
首先我们需要改变一下Form2的构造函数了,因为在Form1中出现了Form2 form2=new Form2( this);这样一句。
public partial class Form2 : Form
{
private Form1 F1 = null; //这里定义一个Form!的引用
public Form2( Form1 parentform) //这个参数是我自己加的
{
F1 = parentform; //其实这里才是关键&