winform窗口的切换

 

假设要在form1 切换到到 from2 ;

建议用多panel重叠,在对不同事件响应的时候,分别设置相应panel的visible属性

panel简单易用,好东东啊

form 里面有Application.run(new form1()); //表示先运行 form1 那么form1就是主程序了

方法1

在主窗口上定义切换事件 例如

private   void  button1_Click( object  sender, System.EventArgs e)
  
{  

Form2   logForm
=new   Form2();   
  
   logForm.Show();               
//登陆窗口打开   
   this.Hide();  

}


 要是你用this.Hide();                   //主窗口隐藏   你把以后的窗体关闭后你的Form2作为主程序还在进程里的没有真正关闭的。

要关闭程序就只能用Application.exit();

方法2

在主窗口上定义切换事件 例如

 

 

private   void  button1_Click( object  sender, System.EventArgs e)
  
{  

Form2   logForm
=new   Form2();   
   logForm.fsdform   
=   this   ;//这个是关键   在form2中定义 internal Form   form这个是
   logForm.Show();               //登陆窗口打开   
   this.Hide();  

}

 

 

 

 

 

 因为你要是直接把this.Close();                   //主窗口退出那应用程序就直接退出了  
  要是你用this.Hide();                   //主窗口隐藏   你把以后的窗体关闭后你的Form2作为主程序还在进程里的没有真正关闭的。你要在其它界面调用你传递的“logForm.lform   =   this   ;//这个是关键”执行   form.Close   ()   关闭整个程序。  

 方法3

还是ApplicationContext方法比较合适。  
  建议大家都用   ApplicationContext   的方法来解决这样的问题,很方便,也很合适。  
   
   
  ---------------   1,首先建立主程序运行基类   -------------------------   
  

using    System;   
  
using    System.Drawing;   
  
using    System.Windows.Forms;   
  
using    System.ComponentModel;   
  
using    System.Text;   
  
using    System.IO;   
    
  
namespace    windowAppliction   
  
{   
  
///   <summary>   
  
///   AppBase   的摘要说明。   
  
///   </summary>   

  public   class   AppContext   :ApplicationContext   
  
{   
    
  
private   Welcome   fm1;   
  
private   Login   fm2;   
  
private   MainForm   fm3;   
    
  
//构造函数   
  public   AppContext()   
  
{   
  
//实例化Form窗体   
  fm1=new   Welcome();   
  fm2
=new   Login();   
  fm3
=new   MainForm();   
    
  
//订阅窗体关闭事件   
  fm1.Closed   +=   new   EventHandler(fm1_Closed);   
  fm1.Closing   
+=new   CancelEventHandler(fm1_Closing);   
    
  fm2.Closed   
+=   new   EventHandler(fm2_Closed);   
  fm2.Closing   
+=   new   CancelEventHandler(fm2_Closing);   
    
  fm3.Closed   
+=   new   EventHandler(fm3_Closed);   
  fm3.Closing   
+=   new   CancelEventHandler(fm3_Closing);   
    
  fm1.Show();   
  fm2.Hide();   
  fm3.Hide();   
  }
   
    
  
**----   窗体关闭事件   ----**   
    
  
**----   主程序入口点   ----**   
    
    
  }
   
  }
   

    
  -------------------------   2   建立三个窗体   ----------------------------------  
  WelcomeForm.cs   、LoginForm.cs、MainForm.cs  
   
  三个窗体执行完自己的操作以后,只要调用自己的   this.close();就可以了。  
  AppContext   主线程运行程序会监控到哪个窗体关闭了,然后该执行哪个步骤

 

 

你可能感兴趣的:(object,System,Class,button,login,WinForm)