本帖最后由 zhoujiehg 于 2010-03-16 20:54:04 编辑

解决方案 »

  1.   

    原因应该是在执行m_Graphics.ReleaseHdc(m_HDC);时,m_Form引用的实例已经释放了。试试如下办法:
    1、为m_Form的Disposing事件加一个处理方法,方法内进行
                DeleteObject(m_CFI);
               m_Graphics.ReleaseHdc(m_HDC);2、删除析构器。C#中的析构器与C++的有着根本的不同,详情可参与MSDN或《C#技术揭秘》(Inside C#)
      

  2.   

    http://msdn.microsoft.com/zh-cn/library/system.objectdisposedexception.aspxObjectDisposedException 类
    对已释放的对象执行操作时所引发的异常。Measure类在执行析构方法时m_CFI和m_HDC所代表的对象已经销毁了,你这个时候再去释放资源就会报这个异常了.建议改成Dispose方法,在要退出程序时显示调用来释放资源.    Public void Dispose()
            {
                DeleteObject(m_CFI);
                m_Graphics.ReleaseHdc(m_HDC);
            }
      

  3.   

    如果在对象被释放后调用其他方法,则可能会引发 ObjectDisposedException
    public void Dispose()
            {
                Dispose(true);
                GC.SuppressFinalize(this);
            }
            public void DoSomething()
            {
                if (disposed) throw new ObjectDisposedException("不能使用被释放的资源");
            }