请教一个登录成功显示另一个窗口的问题

bjdyjd 2009-06-22 10:42:37
我在设计CS结构的程序,做了一个登录窗口,当登录成功后关闭当前登录窗口,显示主工作区,代码如下:
if (dr["Password"].ToString() == adminBLL.getMD5(txtPassword.Text))
{
//登录成功
//MessageBox.Show("登录成功!", "成功");
this.Close();
FrmMainFrame form = new FrmMainFrame();
form.ShowDialog();
return;
}
一运行就闪了一下什么都没了,请教高手怎么解决。
...全文
105 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
whzhong1 2009-06-23
  • 打赏
  • 举报
回复
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
FrmLogin logo = new FrmLogin();
if (username != "")
{
logo.txtUserName.Text = username;
}

logo.ShowDialog();
if (logo.DialogResult == System.Windows.Forms.DialogResult.OK)
{
//enterCheck()为验证用户名和密码
if (logo.enterCheck())
{
FrmMainClass MF = new FrmMainClass();
MF.WindowState = FormWindowState.Maximized;
Application.Run(MF);
}
else
{
username = logo.txtUserName.Text;
Main();
}

}
if (logo.DialogResult == System.Windows.Forms.DialogResult.Cancel)
{
Application.Exit();
Application.DoEvents();
}
}
wsp4872816brave 2009-06-23
  • 打赏
  • 举报
回复
对啊 不能用close();

只能隐藏啊 哈哈

thi.hide();
sheyouyou1 2009-06-23
  • 打赏
  • 举报
回复
5楼7楼正解,也帮我解决了这个问题,原来我是用Hide()的办法。呵呵
nlqtonglin2006 2009-06-23
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 ntljlpb2008 的回复:]
但是这种方法怎么传值,比如:login界面的值传给main界面?
[/Quote]

隐藏是可以传值的啊!!


string User_id = dt.Rows[0]["User_id"].ToString();
mainform main = new mainform(User_id, this);
this.Visible = false;
main.ShowDialog();


ntljlpb2008 2009-06-23
  • 打赏
  • 举报
回复
但是这种方法怎么传值,比如:login界面的值传给main界面?
Walf_ghoul 2009-06-22
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 c_pangzi_xi 的回复:]
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
F_Login login = new F_Login();
if (login.ShowDialog() == DialogResult.OK)
{
Applicati…
[/Quote]


正解
piepiepie 2009-06-22
  • 打赏
  • 举报
回复
比较标准的做法是这样的。在Main()中这样写:
FormLogin winLogin = new FormLogin();
if (winLogin.ShowDialog() == DialogResult.OK)
{ Application.Run(new FormMain()); }

FormLogin窗口的2个按钮 确定和取消.
确定的脚本
...
this.DialogResult = DialogResult.OK;

取消的脚本
this.DialogResult = DialogResult.Cancel;

ntljlpb2008 2009-06-22
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 gtiroy 的回复:]
改成这样就行了
FrmMainFrame form = new FrmMainFrame();
form.ShowDialog();
this.Close();
[/Quote]
这样登录窗体未关闭!
胖子喜1 2009-06-22
  • 打赏
  • 举报
回复
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
F_Login login = new F_Login();
if (login.ShowDialog() == DialogResult.OK)
{
Application.Run(new F_Main(login.Uname));
}
//Application.Run(new F_ClearDatabase());
}
在判断密码和用户名成功之后 this.DialogResult = DialogResult.OK;
gtiroy 2009-06-22
  • 打赏
  • 举报
回复
改成这样就行了
FrmMainFrame form = new FrmMainFrame();
form.ShowDialog();
this.Close();


zhantianyou 2009-06-22
  • 打赏
  • 举报
回复
你把this.close()換成hide();

或者定成這樣
if (dr["Password"].ToString() == adminBLL.getMD5(txtPassword.Text))
{
//登录成功
//MessageBox.Show("登录成功!", "成功");
this.Close();
FrmMainFrame form = new FrmMainFrame();
appclication.run(form);
}
y82907966 2009-06-22
  • 打赏
  • 举报
回复
把this.Close()换成 this.Hide() 看看
mengfeihui 2009-06-22
  • 打赏
  • 举报
回复
this.Close();
这是问题点 你把主程序关掉了 其它的都要关掉的
改成隐藏就可以了

111,094

社区成员

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

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

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