2

全て、

MSVS 2010 を使用して、C#/WinForms でプロジェクトを実行しています。グループ ボックスから派生したオブジェクトを作成し、そのコンストラクターを変更して、構築時に整数変数を取るようにしました。オブジェクトをツールボックスに追加したところ、そのオブジェクトを GUI デザイナーに正常に挿入できました。

しかし、フォームを変更するたびに、カスタム コンストラクターが変更されます。

したがって、フォームを変更するたびにコードが再構築されないようにVSを修正する方法が必要です。または、カスタムメイドのオブジェクトでコードを修正する他の方法が必要です。

基本的に私がやっていることは、渡したパラメーターに応じて、さまざまなウィジェットのセットを作成し、それらをユーザーに表示することです。しかし、コードの繰り返しをなくそうとしているので、そのオブジェクトを作成しました。

誰か助けてくれませんか?

ありがとうございました。

4

1 に答える 1

1

デフォルトの引数のないコンストラクターはそのままにして、 を呼び出す必要がありますInitializeComponents。それが完了したら、二次コンストラクターを追加しても問題ないはずであり、デザイナーはそれを台無しにするべきではありません。

ただし、オーバーロードされたコンストラクターを使用するのではなく、メソッドまたはプロパティを公開して、WinForms コントロールの目的のタスクを達成することをお勧めします。

WinRome では、..


二次コンストラクタの例:

// Leave this constructor - in the X.designer.cs file
public MyType () {
    InitializeComponents();
}

// Add your own constructor - in the X.cs file
public MyType (int x) : this() {
    // ..
}

更新: 「X.designer.cs」ファイルを手動で編集しないようにします。これらはデザイナー向けです。代わりに、ミラーリングの「X.cs」ファイルを編集します。部分クラスは、デザイナー コードとカスタム コードをこれら 2 つのファイルに分散するために使用されます。

于 2012-08-17T01:44:13.550 に答える