登陆界面(菜鸟问题)

lzh1160 2008-07-08 02:44:06
当系统运行时先弹出登陆界面,输入用户与密码成功后就能显示出主界面,现在出现的问题是在登陆界面中用户输入为空时,弹出提示框确定后就会弹出主界面,关闭登陆界面.要实现是用户要输入正确的用户与密码才能显示了主界面
登陆窗体代码:
private void bntOK_Click(object sender, EventArgs e)
{

if (txbUserName.Text.ToString()=="")
{
DialogResult result= MessageBox.Show("用户名不能为空", "错误",MessageBoxButtons.OK, MessageBoxIcon.Information);
if (result == DialogResult.OK)
{
txbUserName.Focus();
return;
}
}

if (txbPWD.Text.ToString() == "")
{
MessageBox.Show("密码不能为空");
bfLoginSuccess = false;

}
}
主界面代码:
private void frmMain_Load(object sender, EventArgs e)
{
frmLogin fLogin = new frmLogin();
DialogResult result = fLogin.ShowDialog();
if (result==DialogResult.OK )
{
//操作代码
}
else
this.Close();

}
...全文
160 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
lzh1160 2008-07-08
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 clxcxx 的回复:]
这下可以了吧?
[/Quote]
我现在已经解决了拉..谢谢拉
bfLoginSuccess我原来是想做一个标志是否登陆成功,但其它地方不能引用.
同意3楼的观点!!!就行拉..呵呵
格拉 2008-07-08
  • 打赏
  • 举报
回复
这下可以了吧?
格拉 2008-07-08
  • 打赏
  • 举报
回复
private void bntOK_Click(object sender, EventArgs e)
{

if (txbUserName.Text.ToString()=="")
{
DialogResult result= MessageBox.Show("用户名不能为空", "错误",MessageBoxButtons.OK, MessageBoxIcon.Information);
if (result == DialogResult.OK)
{
txbUserName.Focus();
return;
}
}

if (txbPWD.Text.ToString() == "")
{
MessageBox.Show("密码不能为空");
bfLoginSuccess = false;

}
}
换成:
private void bntOK_Click(object sender, EventArgs e)
{
if (txbUserName.Text.ToString()=="")
{
MessageBox.Show("用户名不能为空", "错误“);
txbUserName.Focus();
return;
}
else if (txbPWD.Text.ToString() == "")
{
MessageBox.Show("密码不能为空");
txbPWD.Focus();
bfLoginSuccess = false; //这句要了有什么用?
return;


}
}
beancurd005 2008-07-08
  • 打赏
  • 举报
回复
同意3楼的观点!!!
lzh1160 2008-07-08
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 A1027 的回复:]
if (txbPWD.Text.ToString() == "")
{
MessageBox.Show("密码不能为空");
bfLoginSuccess = false;
return;//加上
}
[/Quote]
bfLoginSuccess 我想用一有全局变量来表示是否登陆成功,但其它地方不能引用bfLoginSucess,我又不想写一个类中static bfLoginSuccess 来作为全局变量
bbbbbb888888 2008-07-08
  • 打赏
  • 举报
回复
class FormMain
{

FormMain()
{
....
this.Visible = false;
}
Form_Load()
{
FormLogin login = new FormLogin()
if(lgoin.showDialog(this) == DialogResult.OK)
{
this.Visible = true;
}
else
{
//其他代码
}

}

}

class FormLogin
{
FormLogin()
{
this.DialogResult = DialogResult.None;
.....
}
butn1_Click()
{
if(验证通过)
{
this.DialogResult = DialogResult.OK;
}
else
{
MessageBox.show("密码错误");
//this.DialogResult = DialogResult.Cancel;
}
}
}
lzh1160 2008-07-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 JTFLSH 的回复:]
LZ我给你建议一个方法。VS刚启动的时候那个窗体是默认的主窗体。建议LZ不要把这个窗体用来设计登陆界面。而是再建立一个窗体作为登陆。执行程序时,先将主窗体VISIBLE=FALSE,调用登陆窗体,然后通过判断用户名和密码进行登陆,这样,你可以很轻松地对登陆窗体进行DISPOSE,而不是HIDE,节省内存。而且逻辑简单易用。
[/Quote]
JTFLSH 可不可说得具体点啊?
A1027 2008-07-08
  • 打赏
  • 举报
回复
if (txbPWD.Text.ToString() == "")
{
MessageBox.Show("密码不能为空");
bfLoginSuccess = false;
return;//加上
}
lzh1160 2008-07-08
  • 打赏
  • 举报
回复
clxcxx 我原本是用你那个也不行啊
lzh1160 2008-07-08
  • 打赏
  • 举报
回复
我原本是用这个也不行啊
格拉 2008-07-08
  • 打赏
  • 举报
回复
if (txbUserName.Text.ToString()=="")
{
DialogResult result= MessageBox.Show("用户名不能为空", "错误",MessageBoxButtons.OK, MessageBoxIcon.Information);
if (result == DialogResult.OK)
{
txbUserName.Focus();
return;
}
}
换成
if (txbUserName.Text.ToString()=="")
{
MessageBox.Show("用户名不能为空", "错误“);
txbUserName.Focus();
return;
}
}
试试看
bbbbbb888888 2008-07-08
  • 打赏
  • 举报
回复
在登陆Form实例化的时候,把this.DialogResult = DialogResult.None;

然后验证后,用代码this.DialogResult = DialogResult.OK;赋值,最好不要用窗体里的DialogButton属性..
然后formMain和你的一样了.
guying999 2008-07-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 JTFLSH 的回复:]
LZ我给你建议一个方法。VS刚启动的时候那个窗体是默认的主窗体。建议LZ不要把这个窗体用来设计登陆界面。而是再建立一个窗体作为登陆。执行程序时,先将主窗体VISIBLE=FALSE,调用登陆窗体,然后通过判断用户名和密码进行登陆,这样,你可以很轻松地对登陆窗体进行DISPOSE,而不是HIDE,节省内存。而且逻辑简单易用。
[/Quote]
JTFLSH 2008-07-08
  • 打赏
  • 举报
回复
LZ我给你建议一个方法。VS刚启动的时候那个窗体是默认的主窗体。建议LZ不要把这个窗体用来设计登陆界面。而是再建立一个窗体作为登陆。执行程序时,先将主窗体VISIBLE=FALSE,调用登陆窗体,然后通过判断用户名和密码进行登陆,这样,你可以很轻松地对登陆窗体进行DISPOSE,而不是HIDE,节省内存。而且逻辑简单易用。

110,028

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧