C#无法跳转页面,三层架构


namespace TomSmartERP.UI
{
    public partial class LoginWindow : Form
    {
        public LoginWindow()
        {
            InitializeComponent();
        }

        
        

        private void btnLogin_Click(object sender, EventArgs e)
        {
            //UI层将用户输入数据传递给BLL层
            string userName = txtUserName.Text.Trim();
            string password = txtPassword.Text;
            TomSmartERPBLL.LoginManager mgr = new TomSmartERPBLL.LoginManager();
            TomSmartERPMODEL.UserInfo user = mgr.UserLogin(userName, password);
            
            //将UI层返回业务层传递的数据给用户
            MessageBox.Show("登陆用户:" + user.UserName);
            this.DialogResult = DialogResult.OK;
            this.Dispose();
            this.Close();
            //this.Form2();
        }

        private void txtUserName_TextChanged(object sender, EventArgs e)
        {

        }
    }
}

    internal static class Program
    {
        /// 
        /// 应用程序的主入口点。
        /// 
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new LoginWindow());
            LoginWindow Form1 = new LoginWindow();
           
           // Form1.ShowDialog();
            if (Form1.ShowDialog() == DialogResult.OK)
            {

               
                //运行form2窗体
                //Form2 form2 = new Form2();
                Application.Run(new Form2());
            }
            
        }
    }
    
}


根据您描述,无法跳转页面的问题,由您提供的代码逻辑来看,是登录窗口form1没有弹出来呢,还是点击了form1 中的按钮后无法打开form2呢。没有报错就是没有反应是吗。

在你的代码中,你在按钮单击事件的btnLogin_Click方法中调用了MessageBox.Show()来显示登录用户信息,并在其后关闭当前窗体。

如果你希望在登录成功后跳转到另一个页面,你需要将当前窗体隐藏或关闭,并打开新窗体。在你的代码中,你可以在登录成功后调用Application.Run(new Form2())来打开新窗体。

另外,你需要确保已经创建了一个名为Form2的窗体类。如果你还没有创建这个类,请在你的项目中创建一个新的窗体并将其命名为Form2。

另外提个小tips,在三层架构中,UI层只负责显示界面,业务逻辑层负责实现业务逻辑,数据访问层负责与数据库交互,建议不要在UI层处理过多业务逻辑,将其转移到业务逻辑层。这样可以使得程序更加结构化、可维护性更高。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^