日期:2014-05-20  浏览次数:20867 次

C#窗体跳转问题
问题是这样:我主窗体跳到一个窗体A,窗体A再跳到窗体B,在窗体B里实现一个功能是:双击事件跳到主窗体去,如果直接写show()方法就出现了两个主窗体,我想要就显示一个主窗体,有没有什么方法可以实现呢?各位高手,请赐教。。谢谢。。

------解决方案--------------------
把A,B窗体都在主窗体中声明并设置为可访问。在a窗体中调用主窗体中的B,A close时B就不会报错;
 
C# code
public partial class MainForm : Form
{
   public Form formA=new Form();Form formB=new Form();
}
public partial class FormA:Form{
   public void Load(){
     MainForm1.formB.Show();
}
}

------解决方案--------------------
原来是3个

主窗体跳转A窗体: private void button1_Click(object sender, EventArgs e)
{
FormA frmA = new FormA(this);
frmA.Show();
this.Hide();
}

A窗体跳转到B窗体:
private void button1_Click(object sender, EventArgs e)
{
FormB frmB = new FormB();
frmB.Owner = this.Owner
frmB.Show();
this.Hide();
}
B窗体跳转到主窗体:
private void FormB_MouseDoubleClick(object sender, MouseEventArgs e)
{
if(this.Owner != null) 
this.Owner.Show();
else
{
FrmMain frmMain = new FrmMain();
frmMain.Show();
this.Hide();
}
}