我是新手 问一个问题。比如我有两个窗体 FrmLogin 和FrmMain我设置的是Application.Run(new FrmMain());在FrmMain 的FrmMain_Load事件中 我new了一个 frmLogin 是不是就会出现 登陆窗体?然后判断 登陆窗体的ShowDialog是否为ok 但是如果我的登陆窗体 想直接关闭 如何也让主窗体关闭呢? 请高手告之 谢谢
解决方案 »
- C#窗体初始化时,改变透明度,运行时怎么会卡卡的?
- 画图问题。(GDI+相关,类似画图板)
- 高手过来帮个忙,关于把textbox内容写入txt,谢谢了。
- 求一个C#2.0用socket通讯的实例
- 求解C#中的圆整错误
- 声音播放
- 请教一个用C#在winform下做GDI+画图的问题
- ComboBox移动下位置,添加数据项的代码没了,请高手指点!谢谢
- int id = this.MyDropDownList.SelectedValue.??
- 关系Socket问题,请各位帮下忙!!
- 用编程的方式把DataGridView新行的数据填满以后,如何自动增加新行
- 请问c#怎么在webform中取得控件的句柄?
{
FrmLogin frmLogin=new FormLogin();if (frmLogin.ShowDialog()==DialogResult.OK)
{
Application.Run(new FrmMain());
}
}
Program.cs
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
frmLogin myLogin = new frmLogin();
if (myLogin.ShowDialog() == DialogResult.OK)
{
Application.Run(new frmMain());
}
//else
//{
// MessageBox.Show("登录失败!");
//}
}
frmLogin.cs
private void btnOK_Click(object sender, EventArgs e)
{
//可以到数据库中验证
if (txtUserName.Text == "test" && txtUserPWD.Text == "test")
{
this.DialogResult = DialogResult.OK;
}
else
{
MessageBox.Show("错误的用户名或密码!");
txtUserName.Focus();
}
}
private void btnCancel_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.Cancel;
}
private void frmLogin_FormClosing(object sender, FormClosingEventArgs e)
{
if (this.DialogResult != DialogResult.Cancel && this.DialogResult != DialogResult.OK)
e.Cancel = true;
}
{
//可以到数据库中验证
if (txtUserName.Text == "test" && txtUserPWD.Text == "test")
{
frmMain myForm = new frmMain();
this.Hide();
myForm.Show();
}
else
{
MessageBox.Show("错误的用户名或密码!");
txtUserName.Focus();
}
}
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
FrmLogin myLogin = new FrmLogin();
if (myLogin.ShowDialog() == DialogResult.OK)
{
Application.Run(new FrmMain());
}
//else
//{
// MessageBox.Show("登录失败!");
//}
}
login代码
private void btnOK_Click(object sender, EventArgs e)
{
if (textBox1.Text == "1" && textBox2.Text == "2")
{
this.DialogResult = DialogResult.OK; }
else
{
MessageBox.Show("错误的用户名或密码!");
textBox2.Focus();
} }mian代码
FrmLogin frmLogin = new FrmLogin(); if (frmLogin.ShowDialog() == DialogResult.OK)
{
frmLogin.Close();
} else
{ this.Visible = false;
}
FrmLogon里写
private void btnOK_Click(object sender, EventArgs e)
{
//可以到数据库中验证
if (txtUserName.Text == "test" && txtUserPWD.Text == "test")
{
frmMain myForm = new frmMain();
this.Hide();
myForm.Show();
}
else
{
MessageBox.Show("错误的用户名或密码!");
txtUserName.Focus();
}
}
FrmMain在关闭按钮里写this.close();
你为什么先启动主窗体,然后才登陆?逻辑混乱!
Application.Run(new FrmMain());
==>
main里就不要再new FrmLogin(); 了,因为登录验证的操作是在new FrmMain(); 之前完成的
main里只做main该做的事就可以了,因为验证已经通过了