2011-10-28 9 views
1

Forms.Timerコントロールから継承したいのですが、メソッドを追加したいと思いますが、インスタンス化時にSystem.ComponentModel.Containerに渡す必要があります。基本クラスに必要が渡されました。私はコンパイルされません以下の持っているForms.Timerから継承

:この時点

アムで

クラス名有効ではありません:

class Timer : System.Windows.Forms.Timer 
    { 

     public Timer() : base (System.ComponentModel.Container) 
     { 

     } 

     public static bool IsTimeToActivate() 
     { 
      return false; 
     } 
    } 

をコンテナ引数では、としてフラグ付けされていますここで基本的な理解が欠けていますか?あなたがしたいすべてのタイマーにメソッドを追加している場合

public Timer(System.ComponentModel.Container container) : base (container) 
{ 
} 

またはこの1

​​

答えて

3

、私はextension methodが優れていると思う:

+0

私も同意します - 私はこの方法を持っています –

2

あなたはこのようなコンストラクタを必要としますソリューション:

public static class TimerExtensions 
{ 
    public static MyTimerExtension(this Timer timer) 
    { 
     // use timer here just as any method parameter 
    } 
} 

//usage 

timer1.MyTimerExtension(); 
+0

これを拡張するには、タイマーのコンストラクタでコンテナが必要な場合は、コンテナobjあなたのコンストラクタに渡されたect。 – Deanna

関連する問題