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层处理过多业务逻辑,将其转移到业务逻辑层。这样可以使得程序更加结构化、可维护性更高。
不知道你这个问题是否已经解决, 如果还没有解决的话: