我们在做登录界面,点击登录按钮时,我们希望它关闭现在的窗体然后跳转到我们所需要登录到窗体,而且我们只希望有一个窗体在桌面上,而不是一个个窗体之间的重叠。我们在登陆界面类里面做好两个bool类型,用来标志那一个窗体要登陆,而且要把它们两个定为public。主要的思路就是:把登陆窗体做为模式窗体,然后登陆了的窗体就设为主窗体。
登陆窗体:
窗体一:
窗体二:
当我们在登陆界面点击窗体一或窗体二按钮时,这时候就会登陆窗体一或窗体二然后关闭登陆界面。但我们要修改program程序和登陆的程序。
Program:
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using System.Windows.Forms; namespace Test { static class Program { /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Login Login = new Login(); //创建登录窗体 Login.ShowDialog(); //显示模式登录窗体 if (Login.Form1) { Application.Run(new Form_One()); //以窗体一为主窗体 } else if(Login.Form2) { Application.Run(new Form_Two()); //以窗体二为主窗体 } } } }
Login:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Test { public partial class Login : Form { //类的全局变量,用来控制那个窗体为主窗体 public bool Form1 = false; public bool Form2 = false; public Login() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Form1 = true; this.Close(); //关闭现在的窗体 } private void button2_Click(object sender, EventArgs e) { Form2 = true; this.Close(); //关闭现在的窗体 } } }
时间: 2024-10-17 08:09:43