日期:2014-05-18  浏览次数:20886 次

菜菜的问题,如何隐藏本窗体,显示别的窗体?
如下代码, 运行IF后 根据结果,显示哪个窗体, 但是不能隐藏自己.
我从另一个窗体过来时候,也是按钮单击,隐藏自己,打开别的窗体就可以.

还有 这里应该完全卸载掉 FORM3 好 还是隐藏了就可以了? 卸载代码如何写?

C# code


        private void Form3_Load(object sender, EventArgs e)
        {
            if (Convert.ToString(MessageBox.Show("包含警告图标和确定、取消按钮的消息框", "消息框标题", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation))=="OK")
            {
                Form2 frm2 = new Form2();
                frm2.Show();
                this.Hide();
            }
            else
            {
                Form1 frm1 = new Form1();
                frm1.Show();
                this.Hide();
            }
        }





------解决方案--------------------
lz这里有几个问题:
1、打开新窗体,隐藏当前窗体,不能在Load事件,因为framework在load事件之后才把form.Visible设为true的,所以这里的this.Hide没起作用,建议放在VisiableChanged事件里。

2、if语句有问题
C# code

if (MessageBox.Show("包含警告图标和确定、取消按钮的消息框", "消息框标题", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation)==DialogResult.OK)
{
  //...

------解决方案--------------------
重载一个构造函数
C# code

class Form1
{
  public Form1(Form3 f3)
  {
    f3.close();
  }
}
class Form3
{
private void Form3_Load(object sender, EventArgs e)
        {
            if (Convert.ToString(MessageBox.Show("包含警告图标和确定、取消按钮的消息框", "消息框标题", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation))=="OK")
            {
                Form2 frm2 = new Form2(this);
                frm2.Show();
                //this.Hide();
            }
            else
            {
                Form1 frm1 = new Form1(this);
                frm1.Show();
                //this.Hide();
            }
        }

}

------解决方案--------------------
我没有编译器,
class Form1
{
public Form1(Form3 f3)
{
f3.close();
}
}
这个不是有类吗class Form1