现在,我有两个表单,名为form1和form2,在form1中有一个按钮,当我单击它时,然后打开form2
问题:在form2中,我想在单击它时创建一个按钮,form2关闭,form1关闭。怎么办?这个
答案 0 :(得分:7)
表格1:
private void button1_Click(object sender, EventArgs e)
{
Form2 frm = new Form2(this);
frm.Show();
}
表格2:
public partial class Form2 : Form
{
Form opener;
public Form2(Form parentForm)
{
InitializeComponent();
opener = parentForm;
}
private void button1_Click(object sender, EventArgs e)
{
opener.Close();
this.Close();
}
}
答案 1 :(得分:1)
这有效:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.Hide()
Form2.Show()
答案 2 :(得分:0)
您的问题很模糊,但您可以使用ShowDialog来显示表单2.然后当您关闭表单2时,将DialogResult对象传回给用户,让用户知道表单是如何关闭的 - 如果用户单击该按钮,然后关闭表单1。
答案 3 :(得分:0)
在form2.buttonclick上放置
this.close();
form1应该具有form2的对象。
您需要订阅form2的结束事件。
并在结束方法中
this.close();
答案 4 :(得分:0)
如果您只想在不关闭form2的情况下从form2关闭form1,正如标题所示,那么您可以在创建表单1时将表单1的引用传递给表单2并使用它来关闭表单1
例如,您可以添加public class Form2 : Form
{
Form2(Form1 parentForm):base()
{
this.parentForm = parentForm;
}
Form1 parentForm;
.....
}
Form2的字段和构造函数
如果您想首先关闭form2然后将form1作为问题的文本建议,我会选择Justins回答在关闭form2时将相应的结果返回到form1
答案 5 :(得分:0)
我为我的项目做过一次,关闭一个应用程序并打开另一个应用程序。
System.Threading.Thread newThread;
Form1 frmNewForm = new Form1;
newThread = new System.Threading.Thread(new System.Threading.ThreadStart(frmNewFormThread));
this.Close();
newThread.SetApartmentState(System.Threading.ApartmentState.STA);
newThread.Start();
并添加以下方法。你的newThread.Start会调用这个方法。
public void frmNewFormThread)()
{
Application.Run(frmNewForm);
}
答案 6 :(得分:0)
//program to form1 to form2
private void button1_Click(object sender, EventArgs e)
{
//MessageBox.Show("Welcome Admin");
Form2 frm = new Form2();
frm.Show();
this.Hide();
}
答案 7 :(得分:0)
private void button1_Click(object sender, EventArgs e)
{
Form2 m = new Form2();
m.Show();
this.Visible = false;
}