可以把主窗口作为参数传给子窗口
代码如下:
主窗口:
public partial class frmMain : Form
{
public static frmMain f0 = null; //用来引用主窗口
public frmMain()
{
InitializeComponent();
f0 = this; //赋值
}
private void button1_Click(object sender, EventArgs e)
{
new frmCx().Show();
this.Hide();
}
子窗口:
public partial class frmCx : Form
{
public frmCx()
{
InitializeComponent();
}
private void frmCx_FormClosing(object sender, FormClosingEventArgs e)
{
frmMain.f0.Show(); //显示主窗口
}
}
变量法
smallwindow 添加
public Mainwindow mainwindow ;
我在主窗体的cs文件中使用Preview smallwindow=new Preview()
添加 smallwindow.mainwindow = this;
定义一个Mainwindow类型的变量mainwindow,当显示小窗体时,把this赋予小窗体中的mainwindow,然后就可以在小窗体中用mainwindow.hide()
在子窗体可以使用this.Owner来获取父窗体的实例
//主窗体
public partial class MainForm : Form
{
Preview smallWindow;
public MainForm()
{
InitializeComponent();
smallWindow = new Preview(this);
}
private void button1_Click(object sender, EventArgs e)
{
this.Hide();
smallWindow.Show();
}
}
//子窗体
public partial class Preview : Form
{
private Form mainWindow;
public Preview(Form mainWindow)
{
InitializeComponent();
this.mainWindow = mainWindow;
}
private void button1_Click(object sender, EventArgs e)
{
this.Hide();
mainWindow.Show();
}
private void Preview_FormClosed(object sender, FormClosedEventArgs e)
{
mainWindow.Show();
}
}