我有一个程序,我将数据从一个表单提取到下一个表单,因此它在每个表单上显示相同的数据。虽然当我尝试关闭表单或隐藏它时,在我尝试关闭表单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();
}
如何阻止此事?
感谢。
答案 0 :(得分:3)
改变这个:
form4.Show();
对此:
form4.ShowDialog();
您正在显示Form4非模式,因此会立即执行this.Close()
并关闭Form3。 Form4仍处于打开状态,但可能只是落到后台,而Form2又回到了前面。