C#窗口切换问题:如何切换回主窗体

2025-02-27 12:18:58
推荐回答(5个)
回答1:

可以把主窗口作为参数传给子窗口
代码如下:
主窗口:
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(); //显示主窗口
}
}

回答2:

变量法
smallwindow 添加
public Mainwindow mainwindow ;

我在主窗体的cs文件中使用Preview smallwindow=new Preview()
添加 smallwindow.mainwindow = this;

回答3:

定义一个Mainwindow类型的变量mainwindow,当显示小窗体时,把this赋予小窗体中的mainwindow,然后就可以在小窗体中用mainwindow.hide()

回答4:

在子窗体可以使用this.Owner来获取父窗体的实例

回答5:

//主窗体
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();
    }
}