各位高手一
向大家教一,就是,在登的候入用名和密三次,如果三次均入不正,不能再次入,如何去判入的次三次?!再此了!
[解决办法]
- C# code
int times = 0;bool result = false;while (!result && times < 3){ string username = xxx; string password = yyy; result = login(username, password); times++;}
[解决办法]
代被注了,能行?第一次。
[解决办法]
一般3次锁定,都是配合数据库实现的。加一列记录错误次数
[解决办法]
[解决办法]
判断用户登录三次,这种代码很多。我希望你去搜索。这个让别人给你写代码,原本有点容易“被鄙视”。但是我看了你写的代码,我理解了,你比大多数业余爱好者还没有基础。
编程程序,语言不重要,关键是知道机制。当你执行了mf.Show()之后,就失去捕获其登录事件。有关业务逻辑判断代码是处理那个mf的登录事件时执行的。当你执行了this.Visible = false;之后,还怎么可能再执行btnLogin_Click的部分呢?而这个for循环的业务逻辑概念,我实在是不知道说什么好。
看到你的代码,我混乱了。
[解决办法]
就失去捕获其登录事件 --> 就是去捕获其登录事件
唉,原本不想再回复了,可惜写了错别字,不得不再回复一个帖子。给你写个可能的例子:
- C# code
pivate int errCnt=0;private void btnLogin_Click(object sender, EventArgs e) { AdminSys aSys=new AdminSys(); string adminName = this.txtAdminName.Text.Trim(); string adminPwd = this.txtAdminPwd.Text.Trim(); aSys = AdminSysManager.QueryAdminSysByAdminNameAndAdminPwd(adminName,adminPwd); if (aSys != null && aSys.AdminName == adminName && aSys.AdminPwd == adminPwd) { MainForm mf = new MainForm(); mf.Show(); mf.Close += (sd,arg)=>{ this.Close(); }; this.Visible = false; } else { errCnt++; if(errCnt>3) throw new Exception("超过3次登录错误!"); else MessageBox.Show("用户名或者密码错误,请重新登录!"); } }
[解决办法]
winform的话用个变量来记录登陆次数,比如:
- C# code
private int count = 0;... else { if (count < 3) { txtAdminName.Text = ""; txtAdminName.Focus(); txtAdminPwd.Text = ""; count++; } else { MessageBox.Show("aaa"); } }