当我点击“关于”时,会打开一个新表单并隐藏主表单。我在“关于”按钮上有一个关闭按钮,关闭关于表单,它会显示主窗体。但是,当我用' X'关闭主表格时关闭按钮在顶部,主窗体关闭,但该过程仍在后台运行。当我不点击“关于”按钮时,一切都很好。它杀死了这个过程。
答案 0 :(得分:1)
在Form2
中,您需要调出现有的Form1 instance
而不是创建一个新的{这就是为什么关闭这个新创建的Form1
不会退出应用程序,因为旧Form1
实例仍然隐藏...)。
因此,您可以在创建aboutdialog
时获得引用,并在关闭aboutdialog
时显示:
Form1中:
private void AboutButton_Click(object sender, EventArgs e)
{
var aboutdialog = new Form2(this);
aboutdialog.Show();
this.Hide();
}
窗体2:
Form1 _parentform;
public Form2(Form1 parent)
{
_parentform=parent;
InitializeComponent();
}
private void CloseButton_Click(object sender, EventArgs e)
{
_parentform.Show();
this.Close();
}
答案 1 :(得分:0)
在你的" AboutButton_Click"方法隐藏Form1。但是在关闭“关于”对话框时,不会显示Form1,而是创建一个新的Form1。原始Form1保持隐藏状态,阻止您的应用程序关闭。
答案 2 :(得分:0)
最好使用showdialog。
private void AboutButton_Click(object sender, EventArgs e)
{
var aboutdialog = new Form2();
aboutdialog.ShowDialog();
}
答案 3 :(得分:0)
当form2关闭时,将打开一个新的form1实例,而不是原始实例。您可以在Form2中包含对Form1的引用,或者使用Form1的默认Owner
,方法是显示Form1作为其所有者的对话框:
aboutdialog.Show(this);
在约...点击
并关闭
private void CloseButton_Click(object sender, EventArgs e)
{
Owner.Show();
this.Close();
}