试试在按钮的事件中写
From2 f = new Form2();
f.Close();

解决方案 »

  1.   

    第二窗体
    private Form tempFrm;
    private void button1_Click(object sender, System.EventArgs e)
    {
    tempFrm.Close();
    } public Form frm
    {
    set
    {
    tempFrm=value;
    }
    }
    第一窗体
    Form2 f =new Form2();
    f.frm=this;
    f.Show();
      

  2.   

    如果在第一个窗体中新建并打开第二个窗体,即使你能在第二个窗体中关闭第一个窗体,那么第二个窗体也将会关闭。正确的做法是:
    1、在Main做处理;
    2、把第二窗体的定义不要放在第一个窗体之内,而只在其中实例化和打开。
      

  3.   

    应该放在哪里定义?
    放在第二个窗体里?
    这样定义 Form2 f;?
      

  4.   

    如果你关闭的不是主窗体就不用修改Main函数
      

  5.   

    [STAThread]
    static void Main() 
    {

    Form1 frm =new Form1();
    frm.Show();
    Application.Run();


    }
      

  6.   

    1、在Main做处理,例如:
    //Userinfo is to record user's info
    public struct UserInfo
    {
    public static string Username="";//Init value
    public static string Password="";
    public static int nIdentity=0;//0:
    }[STAThread]
    static void Main() 
    {
    //Show login window
    frmLogin myLogin=new frmLogin();
    myLogin.ShowDialog();

    if(UserInfo.nIdentity!=(int)IdentityState.NotLogin)//Loggin successfully
    {
    //Show main window
    frmMain myMain=new frmMain();
    myMain.ShowDialog();
    }
    }2、把第二窗体的定义不要放在第一个窗体之内,而只在其中实例化和打开。
    public struct GlobalData
    {
    public static Form2 mForm2;
    }//Form2
    public Form1 myForm1;//Form1
    GlobalData.mForm2=new Form2();
    GlobalData.mForm2.myForm1=this;
    GlobalData.mForm2.ShowDialog();//Closing Form1 using this.myForm1.Close();