5

Pictureboxに基づいてカスタムコントロールを作成しました。

public class Timebar : System.Windows.Forms.PictureBox

これは、フォームの初期化メソッドでコントロールを手動で作成したり、すべての値などを設定したりすると、正しく機能します。

今、私はこれもツールボックスの上部にあります:http: //i.imgur.com/4KUc0.png

msvc経由で挿入しようとすると、エラーが発生します。

Failed to create component 'Timebar'.  The error message follows: 
'System.MissingMethodException: Constructor on type 'SC.Timebar' not found.

これは、コンポーネントのタイムバーではそれほど大きな問題ではありませんが(そのコンポーネントを手動で追加するため)、作成したいカスタムButtonクラス(デフォルトよりも凝ったもの)に問題があります。

クラスにはコンストラクターがあります。

public Timebar(Data refr)
{
    this._refr = refr;
}

上記のエラーを修正するにはどうすればよいですか?

ありがとう、

〜Tgys

4

1 に答える 1

8

デザイナで使用されるコントロールには、パラメータのないコンストラクタが必要です。デザイナは、表示するコントロールの1つを作成して操作できるようにする必要がありますが、パラメータを必要とするコンストラクタをどのように呼び出すかについての手がかりはありません。

したがって、私が行うことは、デフォルト値を使用して他のコンストラクターをチェーンするパラメーターなしのコンストラクターを作成することです。

class Foo
{
    public Foo() : this(SomeType.Value) { }
    public Foo(SomeType whatever) : { /* do stuff /* }
}
于 2012-06-27T19:52:34.453 に答える