什么叫换成你的定义的事件???
你在控件的这些事件里写代码来处理你的控件不就行了?事件只不过是在发生这事事件时在使用控件的时候有一个自定义的事件处理.你是想让这个控件存在你的自己写义的事件???
如果这样,你可以在发生这些事件的时候再引发你的自己定义的事件不就可以了???Control类或UserControl类的默认的事件都是系统的标准,你怎么能改变这些默认的事件呢.最好的处理方法是保留原来的标准的事件,然后加上你的自己自定义的事件.

解决方案 »

  1.   

    重寫用 override 沒問題可是如果要把某個事件或者方法去掉呢?我也沒找到好的辦法,不過我想可以試著這樣做(代價大了點)
    定義一個接口,裡面包含所有你希望顯示的事件方法屬性,然後你的類繼續這個接口,這樣就間接地實現了將某些你不希望保存的東西去掉的功能,呵呵
      

  2.   

    我想樓主的意思大概是這樣吧。比如我寫個組件是繼承TextBox過來的,可是我不希望我的組件擁有BackColor屬性,換句話說就是別人在調用我的組件的時候,看都不讓他看到BackColor屬性
      

  3.   

    可是你重寫還是隱藏不掉啊???
    重寫好辦,問題是我想讓我不希望的屬性Dispear,讓他消失,怎麼實現呢?
      

  4.   

    example:
    class MyControl : System.Windows.Forms.Label{
       public MyControl():base(){
            this.MouseMove += new MouseEventHandler( MyMouseMove );      
       }   protected override void OnPaint(System.Windows.Forms.PaintEventArgs e){
           base.OnPaint (e);
           // to add your code
       }
    }
    protected void MyMouseMove (object sender,System.Windows.Forms.MouseEventArgs e){
       //to add your code
    }
      

  5.   

    象MouseMove,MouseDown,MouseUp等事件是通过方法OnMouseMove,OnMouseDown,OnMouseUp等方法引发的,这些方法是protected virtual的,可以通过重写这些方法,不去触发这些事件
    对继承者的说明:  在派生类中重写 OnMouseMove 时,请确保调用了基类的 OnMouseMove 方法,以便注册的委托接收该事件。假如不想触发,就不要调用基类的OnMouseMove 方法即可