从messagebox关闭所需表单!(c#)
我的表格是这样的-表格1是第一个表格。我使用从messagebox关闭所需表单!(c#),c#,c#-2.0,messagebox,C#,C# 2.0,Messagebox,我的表格是这样的-表格1是第一个表格。我使用showdialog方法从Form1移动到Form2(Form1在后台,Form2在顶部)。现在单击Form2上的按钮,会显示一个消息框(请注意,Form1仍在后台)消息框只有“确定”按钮。现在,当我按下OK时,我想加载Form3并同时关闭Form2和Form1。如何关闭Form2和Form1??我在表单2中使用了此代码: private void button1_Click(object sender, EventArgs e) {
showdialog
方法从Form1移动到Form2(Form1在后台,Form2在顶部)。现在单击Form2上的按钮,会显示一个消息框
(请注意,Form1仍在后台)<代码>消息框只有“确定”按钮。现在,当我按下OK
时,我想加载Form3并同时关闭Form2和Form1。如何关闭Form2和Form1??我在表单2中使用了此代码:
private void button1_Click(object sender, EventArgs e)
{
if (...)
{
MessageBox.Show("hello");
this.DialogResult = DialogResult.OK;
this.Close();
Form3 frm = new Form3();
frm.ShowDialog();
}
}
此方法不会关闭Form2和Form1,但会显示Form3。所以我在Form2中尝试了这个:
private void button1_Click(object sender, EventArgs e)
{
if (...)
{
if (MessageBox.Show("hello") == DialogResult.OK)
{
this.Close();
Form3 frm = new Form3();
frm.ShowDialog();
}
}
}
但这两个表单都没有关闭。我尝试调用一个公共关闭方法(this.close
在Form1和Form2中),该方法是在MessageBox.Show
下从Form2在Form1和Form2中创建的。仍然没有任何效果。如何使用消息框的“确定”按钮摆脱这两种形式
谢谢。简单但棘手。。请留下代码片段。不幸的是,我不理解技术术语:-(您需要知道要关闭的实例(本例中的表单) 在Form2中,您可以创建一个变量(例如,
theOneForm
),将对Form1的引用存储在中,并在创建Form1(甚至在Form1的构造函数中)后进行设置
然后从按钮1\u单击
,调用one form.Close()
-这将关闭表单1
private void button1_Click(object sender, EventArgs e)
{
if (...)
{
if (MessageBox.Show("hello") == DialogResult.OK)
{
Form3 frm = new Form3();
frm.ShowDialog();
theOneForm.Close();
this.Close();
}
}
}
另外,请在执行其他代码后关闭表单。看起来您应该只在执行所有其他代码后才关闭表单。请尝试一下,然后在条件块末尾调用
this.close()
。
private void button1_Click(object sender, EventArgs e)
{
if (...)
{
if (MessageBox.Show("hello") == DialogResult.OK)
{
Form3 frm = new Form3();
frm.ShowDialog();
theOneForm.Close();
this.Close();
}
}
}