私はある時点でこのようなことをしなければなりませんでした。私がしたことは、カスタムユーザーコントロールを作成することでした.あなたの場合、それはロード中の製品で満たされるコンボボックスと、満たされる関連するすべてのコントロールで構成されます.selectedindexchanged
コンボボックスのイベントでアウト。この情報を表示するメイン フォームにパネルを配置し、カスタム ユーザー コントロールをpanels.controls
コレクションに追加します。
すべての機能は基本的にユーザーコントロール自体に含まれているため、命名の問題に遭遇することはありません。
ユーザーが選択を行ったときにユーザー コントロールを追加する場合は、コントロールwithevents
を淡色表示にしてカスタム イベントをユーザー コントロールにアタッチし、メイン フォームで処理することができます。コントロールは実行時に追加されるため、AddHandler
呼び出しを使用してイベント ハンドラーをアタッチする必要があります。
したがって、それを分解するには、次のものが必要です。
- 各製品に必要なすべてのコントロールと分離コード内の ID を持つカスタム ユーザー コントロール
- コンボ ボックスに選択された値があることをメイン フォームに通知するカスタム ユーザー コントロールのイベント
- カスタム ユーザー コントロールを保持するメイン フォーム上のパネル
- コンボ ボックスで選択が行われたときに、新しい顧客ユーザー コントロールをパネルに追加するイベント ハンドラー。
同じボタンで特定の製品とやり取りしたい場合は、ユーザー コントロールのコード ビハインドに ID を添付し、新しいユーザー コントロールが追加されるたびにそれを設定できます。これは難しいことではないと思いますが、実際にはパネル コントロール コレクションで linq を実行し、指定した条件が満たされているすべてのパネルを取得して、そこから必要なことを実行できます。
2 番目の質問については、ユーザー コントロールが偽の接続文字列をどこかから引っ張っていると思います。私はそれがどこで起こっているのかを追跡し、そこから行こうとします. それを超えるものは単なる WAG であり、実際には役に立ちません。