首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我在表单(隐藏、显示、关闭、显示)方面有一个奇怪的问题

我在表单(隐藏、显示、关闭、显示)方面有一个奇怪的问题
EN

Stack Overflow用户
提问于 2019-07-04 12:08:27
回答 1查看 114关注 0票数 0

我有三种形式(form1form2form3)。当form1加载时,它通过使用以下代码转到form2

代码语言:javascript
运行
复制
this.Hide();
Form2 frm = new Form2();
frm.ShowDialog();
this.Close();

form2包含一个按钮,通过在按钮中使用以下代码显示form3和隐藏form2

代码语言:javascript
运行
复制
Form3 frm = new Form3();
frm.Show();
this.Hide();

问题是,当我单击此按钮时,应用程序将退出。

当单击按钮时,我需要显示form3并隐藏form2

EN

回答 1

Stack Overflow用户

发布于 2019-07-04 13:48:04

当您针对Hide()调用Form2时,执行返回到ShowDialog()行。

不要使用ShowDialog(),而是使用Show()。您可以订阅FormClosed()事件,以了解窗体何时关闭。

Form1:

代码语言:javascript
运行
复制
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        this.Hide();
        Form2 frm = new Form2();
        frm.FormClosed += Frm_FormClosed;
        frm.Show();
    }

    private void Frm_FormClosed(object sender, FormClosedEventArgs e)
    {
        this.Close();
    }
}

Form2:

代码语言:javascript
运行
复制
public partial class Form2 : Form
{
    public Form2()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        this.Hide();
        Form3 frm = new Form3();
        frm.FormClosed += Frm_FormClosed;
        frm.Show();
    }

    private void Frm_FormClosed(object sender, FormClosedEventArgs e)
    {
        this.Close();
    }
}

Form3:

代码语言:javascript
运行
复制
public partial class Form3 : Form
{
    public Form3()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        this.Close();
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56887633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档