Application.Exit()方法出错

wlcsdf 2012-05-05 11:35:02
登录界面,采取用户名和密码登录,进入主窗体,代码如下:

new frmMain().Show();
this.Visible = false;

而后,关闭主窗体,代码如下:

private void frmMain_FormClosed(object sender, FormClosedEventArgs e)
{
Application.Exit();
}


一切都正常。

登录界面,采取指纹仪验证登录,进入主窗体,代码如上。而后,关闭主窗体,系统报错:
“未处理 System.InvalidOperationException
Message="集合已修改;可能无法执行枚举操作。”

请问究竟是怎么回事?
指纹仪登录时,必须要把指纹信息从数据库读到内存中,然后才能进行比对,验证用户。难道是这个原因,所以导致Application.Exit()方法出错?
...全文
591 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wlcsdf 2012-05-07
  • 打赏
  • 举报
回复
问题已经解决,解决方法如下:
1、在主窗体定义一个 公共变量
public Form f_login = null;//注意,Form不可用 主窗体 代替

2、登录窗体中:登录按钮事件中验证用户输入通过后的代码
主窗体 f_main = new 主窗体();//实例化主窗体
f_main.f_login = this;//传递本窗体给主窗体:对公共变量进行赋值,把自己赋给该公共变量。
f_main.Show();//显示主窗体
this.Hide();//隐藏登录窗体,因为是写在登录窗体中的,所以“this”指的就是登录窗体
this.ShowInTaskbar = false;//在任务栏隐藏登录窗体

3、主窗体中,注销(重新登录)按钮的代码为
f_login.ShowInTaskbar = true;//已赋值为“登录窗体”的form类型变量
f_login.Show();
this.Close();

然后在主窗体中就能轻松调用该已经隐藏的登录窗体了
threenewbee 2012-05-05
  • 打赏
  • 举报
回复
估计你判断“有用”“没用”的标准就是写一步看一步,只要程序貌似还没出错,就“有用”。

这样凑程序是不行的。
threenewbee 2012-05-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
1楼的朋友,我使用 用户名和密码 登录,一切正常。你提供的例子,对我没用。
[/Quote]

你登录加载主窗体的方式就不正确。
jason成都 2012-05-05
  • 打赏
  • 举报
回复
你其他地方是不是还有什么处理哦。这个本身是没有问题的。
wlcsdf 2012-05-05
  • 打赏
  • 举报
回复
3楼的朋友,用你的办法可以实现强制退出,可是“注销”功能就没法用了。谢谢
orochiheart 2012-05-05
  • 打赏
  • 举报
回复
try
Environment.Exit(0);
wlcsdf 2012-05-05
  • 打赏
  • 举报
回复
1楼的朋友,我使用 用户名和密码 登录,一切正常。你提供的例子,对我没用。
threenewbee 2012-05-05
  • 打赏
  • 举报
回复
http://blog.csdn.net/wuyazhe/article/details/5642431
xky96 2012-05-05
  • 打赏
  • 举报
回复
如果只是要回到登录界面,那就去掉Application.Exit();
wlcsdf 2012-05-05
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
引用 2 楼 的回复:
1楼的朋友,我使用 用户名和密码 登录,一切正常。你提供的例子,对我没用。

你登录加载主窗体的方式就不正确。
[/Quote]
我使用program.cs进行首界面设定。代码如下:

static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new FrmLogin());
}
}


这是标准代码之一,打开登录界面应该是没有问题的。

111,126

社区成员

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

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

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