关闭一个扭曲的表格

时间:2014-07-31 09:52:20

标签: c# forms

我希望有一个表单在某个进程运行时显示,然后在完成后关闭。在我的解决方案中,当我运行this.Close()方法并且表单不显示时,我会收到异常。我真的不想为此运行第二个线程。

以下是我打开表单的方式:

app appFourm = new app();
appFourm.ShowDialog();

以下是表单中的代码:

  namespace App
    {
        public partial class app: Form
        {
            public app()
            {

                InitializeComponent();
                // do some stuff
                this.Close();

            }...(more sudo code)

2 个答案:

答案 0 :(得分:2)

在Program.cs中创建表单实例,调用Show()。 加载主表单后,关闭()它。

你不能从它自己的构造函数中处理某些东西,这就是你得到错误的原因。

答案 1 :(得分:1)

您可以使用表单的Activated事件。我使用了一个form2表单,上面有一个标签label1来显示一些进度。它的工作原理如下:

public partial class Form2 : Form
{
    public Form2()
    {
        InitializeComponent();

        Activated += Form2_Activated;
        label1.Text = "Initialised";
    }

    private void Form2_Activated(object sender, EventArgs e)
    {
        // Call methods to do work from here, for example:

        label1.Text = "Working ...";
        Refresh();

        System.Threading.Thread.Sleep(500);
        label1.Text = "Still Working ...";
        Refresh();

        System.Threading.Thread.Sleep(500);
        label1.Text = "Done!";
        Refresh();

        System.Threading.Thread.Sleep(500);
        this.Close();
    }
}

现在你可以调用它,它可以完成工作并可以显示进度,然后在完成后关闭。

Form2 f = new Form2();
f.ShowDialog();