ユーザーが入力したさまざまなタイプのデータを使用するのに十分な柔軟性が必要なユーティリティを作成しています。異なるデータだけでなく、1人のユーザーが「RoryGallagher」、別の「Merle Travis」、別の「Louis Jordan」、さらに別の「GatemouthBrown」と入力する場合があります。
あるユーザーが「RoryGallagher」、別の「42」、日付(9/8/1956など)とID値(「00034872184」など)の両方を入力するようなものです。
したがって、問題はGUIにあります。フォームの入力を求めるセクションをどのように「スワップアウト」できますか?99%同じであるいくつかのユーティリティを作成するのはやり過ぎのようです。ただし、アプリの「バージョン」によっては、TextBoxとともに単一の「値を入力」ラベルが必要な場合もあれば、2つ以上の情報の入力を求める必要がある場合もあります。
別のフォームを呼び出すような「データの入力」ボタンをフォームに配置したくありません。ユーザーが1ビットの情報を入力するだけでよい場合、それは非常に奇妙に思えるからです。
ストラテジーパターンは将来ここにあるかもしれないと思っていますが、GUIの部分はまだ難問です。WPFを使用している方が簡単ですが、そうではありません。「最大の」シナリオを組み込むのに十分な大きさのままにしておくフォームのセクションをまだ持つことができると思いますが、それが最善の方法ですか?
アップデート
私は以下の提案を試しました:
フォームにパネルを追加し、[追加]|[追加]を使用してユーザーコントロールを作成しました。UserControlとこれを試しました:
panel1.Controls.Add(UserControl1);
UserControl1.Dock = DockStyle.Fill;
...しかし、壮大な失敗に見舞われました( "'PlatypiRUs.UserControl1'は'タイプ'ですが、'変数'のように使用されます"および"非静的フィールド、メソッド、またはプロパティ'システムにはオブジェクト参照が必要です。 Windows.Forms.Control.Dock.get'")
もう一度更新
これで今の壮大な成功:
UserControl1 usr1 = new UserControl1();
panel1.Controls.Add(usr1);
usr1.Dock = DockStyle.Fill;