我做了个登录窗体,但是在关闭(x)是它报了个错误,困扰了我很久,
是这样子的错误:
首先是:
“没有任何调用堆栈框架加载任何符号,无法显示源代码”然后就是:“正试图在 OS 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码,这样做会导致应用程序挂起。”检测到 LoaderLock
Message: 正试图在 OS 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码,这样做会导致应用程序挂起。这是我在C#中遇到的问题,主窗体的(x)退出,我点击的时候,弹出个窗体,(是管理员密码验证),我用的是在主窗体中ShowDialog的方法,但是我在取消的时候,它却连主窗体一起关闭,为什么?我只想关闭管理员验证窗体,剩下主窗体继续编辑……

解决方案 »

  1.   

    1.改在主窗体的FormClosing事件里面处理你的退出逻辑            if ((new Form1()).ShowDialog() != DialogResult.OK)
                {
                    e.Cancel = true;
                }
      

  2.   

    贴出代码
    调试->异常->Managed Debuggin Assistants->LoaderLock 的选中状态去掉
      

  3.   

    new Form1()).ShowDialog() != DialogResult.OK因为这个的原故,关闭,它也重新打开了另一个窗体……
    我把这个放在了登录窗体,如果放在主窗体,它会没用……
      

  4.   


    还要用
        if ((new Form1()).ShowDialog() != DialogResult.OK)
                {
                    e.Cancel = true;
                }
    吗?
      

  5.   

    用户代码未处理 System.InvalidOperationException
      Message="集合已修改;可能无法执行枚举操作。"
      Source="mscorlib"
      StackTrace:
           在 System.Collections.ArrayList.ArrayListEnumeratorSimple.MoveNext()
           在 System.Windows.Forms.Application.ExitInternal()
           在 System.Windows.Forms.Application.Exit(CancelEventArgs e)
           在 System.Windows.Forms.Application.Exit()
           在 NetBar.MainForm.MainForm_FormClosing(Object sender, FormClosingEventArgs e) 位置 d:\我的文档\桌面\NetBar\NetBar\NetBar\NetBar\MainForm.cs:行号 698
           在 System.Windows.Forms.Form.OnFormClosing(FormClosingEventArgs e)
           在 System.Windows.Forms.Form.WmClose(Message& m)
           在 System.Windows.Forms.Form.WndProc(Message& m)
           在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
           在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
           在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)