主窗体弹出一个模式窗体,上面有两个按钮:上一步,下一步。点击下一步之后弹出另外一个模式窗体,上面还是有两个按钮:上一步,下一步。但是如果一直这样点下去的话,所有的窗体都累加到这了,我明明在弹出另外一个模式窗体的时候close了这个窗体了,可是却没有close掉,导致后面窗体一个个都累加到这了。。我最开始用代码手动close()窗体:
private void button2_Click(object sender, EventArgs e)
{
ProcessHelp2 help = new ProcessHelp2();
help.ShowDialog();
this.Close();
}
设了断点看了,close()已经走到了,为什么就是不关呢。我又改成这样:
private void button2_Click(object sender, EventArgs e)
{
ProcessHelp2 help = new ProcessHelp2();
this.Close();
help.ShowDialog();
}
反正都一样,就是所有的窗体都累计到那了。请大侠们帮忙解决下啊,小弟在线等待!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
private void button2_Click(object sender, EventArgs e)
{
ProcessHelp2 help = new ProcessHelp2();
help.ShowDialog();
this.Close();
}
设了断点看了,close()已经走到了,为什么就是不关呢。我又改成这样:
private void button2_Click(object sender, EventArgs e)
{
ProcessHelp2 help = new ProcessHelp2();
this.Close();
help.ShowDialog();
}
反正都一样,就是所有的窗体都累计到那了。请大侠们帮忙解决下啊,小弟在线等待!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
{
ProcessHelp2 help = new ProcessHelp2();
if(help.ShowDialog()==DialogResult.OK)
this.Close();
}
如果真要按你的实现
Form2 frm = new Form2();
frm.Show();foreach (Form f in Application.OpenForms)
{
if ((f is Form1))
{
f.Hide();
break;
}
}
换为help.Show(); 就可以了
help.ShowDialog(); 方法会把该窗体累计显示出来。
{
Hide();
ProcessHelp2 help = new ProcessHelp2();
help.ShowDialog();
}
{
InitializeComponent();
this.parentForm = parentForm;
} private Form parentForm = null;
private void button1_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2(parentForm);
form2.Show(form2.parentForm);
form2.Location = this.Location;
this.Close();
}
简单处理,会闪烁
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2(this);
form2.Show(this);
}
{
a=1;
this.close();
}
在main中写
if(类名.a==1)
{
application.Run(new form2())
}
这样就ok了
我建议你别用hide 这样容易导致计算机变慢
将
private void button2_Click(object sender, EventArgs e)
{
ProcessHelp2 help = new ProcessHelp2();
help.ShowDialog();
this.Close();
}
中的help.ShowDialog(); 改为help.Show();就可以了
{
ProcessHelp2 help = new ProcessHelp2();
help.Show();
this.Close();
}
恩 今天 我也碰到了 找到老师 解决的