本帖最后由 hrbwgs1111 于 2009-08-20 17:31:02 编辑

解决方案 »

  1.   

    1.在form的声明中加入 Phone phone;
    2.在Phone的Closing事件处理方法中加入:
    e.Cancel=true;
    this.Hide();
    3.需要显示的时候,先来个
    if(phone==null !! phone.IsDisposed)
    //创建新的phone窗体
    else
      phone.Show();
      

  2.   

    不如果Phone类是个托管类,则不必担心,CLR帮你管理内存
    否则必须析构或Dispose之
      

  3.   

    请问我是应该把
    Phone Phone = new Phone(employee_id, employee_pwd, employee_session_id, statList);
    这段代码放到 父窗体的load事件里吗?我试了把button中的
    Phone Phone = new Phone(employee_id, employee_pwd, employee_session_id, statList);
    这段代码移过去了,结果提示
    非静态的字段、方法或属性“System.Windows.Forms.Form.Owner.get”要求对象引用
      

  4.   

    Form开始定义的地方,一般是成员声明的地方,先在这儿声明:private Phone phone;然后,原来的代码也不需要移动,但phone前面的类型Phone去掉。
    顺便说一句,类名与变量名不要取一样的好不好?
      

  5.   


    问题解决,谢谢dancingbit
    类名和变量名以后不这么写了,明天结贴
      

  6.   

    实际你什么也不用作。这不叫内存泄漏。只是GC不会即使释放内存而已。你要是需要较高的内存利用率,C#不大适合干这活。