2012-02-28 8 views
3

私は別の2つのUserControlsを作成しました(どちらがRadioButtonが選択されているかに応じて)どちらか一方を表示したいと思います。パネル上の2つのUserControlを「切り替える」最適な方法は?

今、それぞれのUserControlの1つのインスタンスをフォームにドラッグし、1つを別のインスタンスの上に配置します(.Visible = false;を1に設定)。

これは問題ありませんが、これを行うためのより適切な、またはより適切な方法があるかどうか疑問に思っていましたか?

+0

タイトルに「c#:」などのプレフィックスを付けないでください。それがタグのためのものです。 –

+0

[C#でWindowsフォーム用ウィザードを作成中]の複製が可能です(http://stackoverflow.com/questions/2340566/creating-wizards-for-windows-forms-in-c-sharp) –

答えて

4

これは完全に合理的です。

あなたがもう使用していないリソースを保持することに心配している場合は、Panelを追加してそこからコントロールを追加または削除できます。

など。

try 
{ 
    panel.SuspendLayout(); 
    panel.Controls.Remove(userControl1); 
    panel.Controls.Add(userControl2); 
} 
finally 
{ 
    panel.ResumeLayout(); 
} 

ユーザーがデータソースに接続するなどの操作を行う場合は、実際にそれらを破棄して再作成することをお勧めします。コントロールがどれほど複雑であるかによります。彼らがちょうどいくつかのプロパティをキャプチャしている場合、現在のソリューションは問題ありません。

関連する問題