我写了个类,这个类继承与UserControl.   是个有Click消息和背景图片的自定义控件. 我想个这个类加个销毁自己的方法,如下: 
C# code
  public void dispose()
        {
            this.dispose();
        }
        //销毁自己
在另外的Form类中有俩按钮,一个用来创建,一个用来销毁 C# code
private void button1_Click(object sender, EventArgs e)
        {
            MyClass myclass = new MyClass(this.pnl, this.img, 0, 0, 50, 50);
            myclass.Createmycontrol();//创建控件并显示
        }
        //button 1 创建button        private void button2_Click(object sender, EventArgs e)
        {            myclass.dispose();
        }
        //button 2 销毁button
这样是运行不了的,提示我myclass对象没有实例化. 请问: 1   如果想这样使用   "创建",   "销毁"   的方法,应该怎么改?   是改dispose()方法的定义,还是修改调用方式?   怎么改? 2   如果重载析构函数可以销毁对象本身吗?   重载析构函数是   "~MyClass()"   这样吗? 3   为什么button2_Click中的myclass没有实例化,编译也能通过? 4   谢谢! 

解决方案 »

  1.   

    请到这里领取分数,我一分都没了http://topic.csdn.net/u/20080124/01/30ea31f2-9c2b-4ae6-b134-2084ad62d047.html
      

  2.   

    1. 在Form里声明
    MyClass   myclass;
    在事件里初始化
    private   void   button1_Click(object   sender,   EventArgs   e) 

       myclass   =   new   MyClass(this.pnl,   this.img,   0,   0,   50,   50); 
       myclass.Createmycontrol();//创建控件并显示 
    } 2. 析构函数自动吧对象dispose掉3.应该不是编译button2_Click通过  而是在button1_Click编译没有通过就没有继续往下编译了
    LZ可以试试吧button2_Click写在button1_Click上面看下是不是这样