static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); frmLogin login = new frmLogin(); if (login.ShowDialog() == DialogResult.OK) { Application.Run(new frmMainDock()); } } 当跳转到frmLogin窗体后怎么不自动动跳转到frmMainDock窗体了
你的frmLogin窗体中协商这个语句了吗??
if(登陆条件==true)
{
this.DialogResult=this.DialogResult.OK;
1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Drawing; 6 using System.Linq; 7 using System.Text; 8 using System.Windows.Forms; 9 10 namespace 书店管理系统 11 { 12 public partial class Form_login : Form 13 { 14 public Form_login() 15 { 16 InitializeComponent(); 17 } 18 19 20 int loginCount = 0;//登录次数 21 private void Form1_Load(object sender, EventArgs e) 22 { 23 24 25 } 26 27 private void button_ok_Click(object sender, EventArgs e) 28 { 29 loginCount++;//自增,记录登录次数 30 //根据用户名与密码进行判断 31 if (textBox_username.Text == "admin" && textBox_password.Text == "admin") 32 { 33 // MainForm.userName = userNameCoboBox.text; 34 this.DialogResult = DialogResult.OK; 35 } 36 else//!!千万别忘记else这对外部的{}号,之前忘记了,肯定转不过去的 37 { 38 if (loginCount < 3) 39 { 40 MessageBox.Show("用户名与密码不一致,您还有" + (3 - loginCount).ToString() + "次机会!", "登陆提示"); 41 42 } 43 this.DialogResult = DialogResult.No; 44 } 45 46 } 47 48 private void button_clear_Click(object sender, EventArgs e) 49 { 50 this.Close(); 51 } 52 53 54 55 } 56 }
你单步下就知道了
调试结果显示login.ShowDialog()函数超时
@小星星": 你不需要必须在这块写调用framMainDock这个窗体吧 ,你可以放置到login窗体的加载中或者初始化中。
如果能这样就好了!frmLogin在一个动态库中!代码改不了!
login.ShowDialog()没有返回DialogResult.OK吧。
因为:login.ShowDialog()返回的值不是DialogResult.OK
所有 if (login.ShowDialog() == DialogResult.OK) 条件不成立
解决:
在frmLogin窗口上加一个按钮botton
在其单击事件处理时加上下面语句:
this.DialogResult=this.DialogResult.OK;
当frmLogin窗口关闭时就会自动跳转到frmMainDock窗体了