如何阻止弹出窗体

时间:2014-08-14 23:22:31

标签: c#

我有一个程序,我将数据从一个表单提取到下一个表单,因此它在每个表单上显示相同的数据。虽然当我尝试关闭表单或隐藏它时,在我尝试关闭表单3并转到表单4时,将表单2中的信息转发到表单3的其他表单之一会继续显示。如何关闭表单2以便它不再出现了吗?

以下是表单2中的当前代码,它转发到表单3: 我在初始化组件的下面设置它来读取表单1中的数据

public string Username { get; set; }
public string MSG { get; set; }

然后我读入了form2 load

中的值
label4.Text = Username;
label5.Text = MSG;

然后我尝试将信息转发到一个只启用3秒的计时器中的表格3:

using (var f = new form3())
{
     try
     {
         f.Username = label4.Text;
         f.MSG = label5.Text;
         f.ShowDialog();
     }
     catch
     {
         Application.Exit();
     }
     this.Close();
}

然后在form3上我尝试使用一个按钮转到表单4并再次显示表单2 ...

private void button1_Click(object sender, EventArgs e)
{
     form4.Show();
     this.Close();   
}

如何阻止此事?

感谢。

1 个答案:

答案 0 :(得分:3)

改变这个:

form4.Show();

对此:

form4.ShowDialog();

您正在显示Form4非模式,因此会立即执行this.Close()并关闭Form3。 Form4仍处于打开状态,但可能只是落到后台,而Form2又回到了前面。