WINFORM关于窗口的问题 退出时主窗口闪一下

GeomaticMm 2008-12-21 10:43:33
我做一个通讯录
在主窗口的Load事件里显示登录的对话框
登录系统没问题 如果取消的话
我的事件处理代码是this.DialogResult = DialogResult.Cancel;
这样回到主窗口的Load中,我注册Application的Idle事件来
关闭主窗口 然后在Application的ApplicationExit事件中再把
Application.Idle事件注销掉 这个是MSDN文档里推荐的做法

现在有个问题 就是取消的时候 主窗口会闪一下再退出
我用this.hide隐藏主窗口也没用,麻烦各位能不能帮我看下
有什么好的办法

其实本来用的是先显示登录对话框 然后再启动主窗口呢
但是由于使用了换肤控件 那样容易引起死锁 MDA会报告异常
所以用上面说的办法 就带来之前的问题 主窗口会闪一下再消失
麻烦各位帮忙看下
...全文
541 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
doomedes 2012-07-12
  • 打赏
  • 举报
回复
5楼的太有用了!
GeomaticMm 2008-12-24
  • 打赏
  • 举报
回复
感谢以上各楼的回答
你们说的方法是我最早用的,先以对话框形式显示登录界面,然后根据对话框的返回值决定是否运行主窗口,
但是,由于我使用了换肤控件,这种方式MDA托管调试助手会报告LoaderLock,就是有可能会产生死锁,
不得以,才在主窗口的Load事件里显示登录窗口的.
回5楼:
你的那种写法有些问题,我查MSDN,FORM类的Close()方法的说明中有提及,不能在Load事件和Actived事件里调用
Close()方法,可能产生资源泄露,然后推荐的方法就是我用的那种,先注册Application.Idle,然后在Application.ApplicationExit里
隔离两个事件.
总之,谢谢以上各楼.
yanlongwuhui 2008-12-23
  • 打赏
  • 举报
回复
建议不在主窗口中调用登录窗口,在启动主窗口前先进行登录的验证
flyjimi 2008-12-22
  • 打赏
  • 举报
回复
这样回到主窗口的Load中,我注册Application的Idle事件来
关闭主窗口
你直接在主窗口Load事件中this.Close()
yanlongwuhui 2008-12-22
  • 打赏
  • 举报
回复
建议新建1个模块,里面创建一个函数Public Sub Main,在函数中先启动登录界面,然后根据返回值来判断是否启动主窗口。工程的启动对象改成“Sub Main”
GTX280 2008-12-22
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 cpio 的回复:]

我这样写好像没感觉到闪烁


private void FormMain_Load(object sender, EventArgs e)
{
FormLogin f = new FormLogin();
if (f.ShowDialog(this) != DialogResult.OK)
{
Close();
}
}

[/Quote]
cpio 2008-12-22
  • 打赏
  • 举报
回复

我这样写好像没感觉到闪烁


private void FormMain_Load(object sender, EventArgs e)
{
FormLogin f = new FormLogin();
if (f.ShowDialog(this) != DialogResult.OK)
{
Close();
}
}
qiying1988 2008-12-22
  • 打赏
  • 举报
回复
up
cunzhangok 2008-12-21
  • 打赏
  • 举报
回复
你可以在登陆窗体(假设是form1)内设定一个public static int a 变量,然后在登陆窗体退出的时候,你根据用户的登陆情况给a设定一个值,在

主窗体的load()中 form1 denglu=new form1();denglu.showdialog(); if (form1.a==数据) 然后判断你的执行,如果登陆失败,假设a=1 那么就application.close();解决。关于你用的界面插件我用的很好。

110,533

社区成员

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

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

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