0

私は4つのWinFormアプリを持っています。Form1 は baseForm から継承し、Formv2 は Formv1 から継承し、v3 は v2 から、v4 は v3 から継承します。タブを含む多くのタブにまたがる約 2,000 のコントロールがあります。

これは、Visual Studio 2008 を実際に停止させ、頻繁にクラッシュさせ、一般的にひどいパフォーマンスを引き起こします。

baseForm からのみ継承するが、formsv1 から v4 までのすべてのビジュアル レイアウト (すべて) を含む FormV5 を作成したいと考えています (baseForm にはコントロールはありません)。

フォームごとの違いは、主に新しいコントロールの追加であり、一部の古いコントロールは移動または非表示にする必要があり、またはいくつかのラベルがあちこちで変更されています。

これを行うプログラム的な方法を提案できる人はいますか? formV4 で実行時にリフレクションなどを使用してコードを生成する方法 (formV4 コントロール、レイアウト、およびプロパティをダンプする) のように、formV5.designer.vb.file にカット アンド ペーストできますか?

(注意してください、これは約 5 年前のエンタープライズ プロジェクトであり、変更を加えるたびにすべてのクライアント (病院) にプッシュする必要があります。自動化されたテストや単体テストがないため、これを入手する必要があります。右 :) )

ありがとうジョナサン

実際の formlogic 仮想メンバーをすべてマージすることは、手動で管理できるはずです。

4

1 に答える 1

0

Form1 から Form2、Form 3、Form 4 へのレイアウトがほとんど追加的 (新しいコントロールの追加) であり、他の多くの操作 (既存のコントロールの全体の変更) ではない場合、次のように分割します。

  1. すべてのグローバル フォーム設定 (子コントロールのレイアウトではなく、背景色など) をベース フォームに配置します。あなたの説明から、これはすでにbaseFormにあるようです。

  2. Formv1 のすべての子コントロールのレイアウトを UserControl に配置します。この UserControl は、以前フォームにあったすべてのコントロールのコンテナーとして機能します。

  3. 最初の UserControl から継承する 2 番目の UserControl を作成します。必要に応じて新しいコントロールを追加します。
  4. 2 番目の UserControl から継承する 3 番目の UserControl を作成します。必要に応じて新しいコントロールを追加します。
  5. 3 番目の UserControl から継承する 4 番目の UserControl を作成します。必要に応じて新しいコントロールを追加します。
  6. baseForm から継承し、最初の UserControl を持つ Form1 を作成します。
  7. baseForm から継承し、2 番目の UserControl を持つ Form2 を作成します。
  8. baseForm から継承し、3 番目の UserControl を持つ Form3 を作成します。
  9. baseForm から継承し、4 番目の UserControl を持つ Form4 を作成します。

このアイデアの利点は、基本フォームの設定を思いのままに変更できることです (既定のフォント、既定の前景色など) と同時に、UserControls を使用してコントロールのレイアウトを段階的に変更できます。

于 2011-05-29T20:33:43.340 に答える