关闭窗体时报错:未处理AccessViolationException-尝试读取或写入受保护的内存。这通常指示其他内存已损坏。解决方法

关闭窗体时报错:未处理AccessViolationException--尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
登录窗体::FormLogin  主窗体:FormMDI  功能窗体:FormCard

1、单独调试FormLogin、FormMDI、FormCard一切正常。
2、启动加载FormMDI,调用FormCard一切正常。
3、启动加载FormLogin,验证后隐藏窗体调用FormMDI ,再执行FormCard,FormCard.textbox输入英文没问题,切换中文输入法后,可以继续操作,但在关闭窗体时执行FormCard的功能按钮中的this.close()或使用窗体关闭按钮报错!
4、启动加载FormMDI ,在FormMDI .Load()中调用FormLogin,验证后关闭窗体,再执行FormCard同样报错!

错误信息:

标题:未处理AccessViolationException
内容:尝试读取或写入受保护的内存。这通常指示其他内存已损坏。

protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing); //该行为提示出错的位置!
        }
------解决方案--------------------
是不是有什么东西重复dispose了。

这个异常我只在旧版本的.net上见到过, 比如3.5的原版。
------解决方案--------------------
在所有的方法中加上try catch 
前段事件遇到过,就是用try catch捕获到的
------解决方案--------------------
加上try catch   看具体哪一行出错在排查