2 つの UserControls (UserControl1 と UserControl2 という名前) を作成し、1 つを動的にパネルに追加します。
UserControl yoozerControl;
if (pi != pie) {
yoozerControl = new UserControl1();
} else {
yoozerControl = new UserControl2();
}
panel1.Controls.Add(yoozerControl);
yoozerControl.Dock = DockStyle.Fill;
ただし、UserControls のメンバーにアクセスできません。たとえば、UserControl1 には TextBox1 がありますが、これはコンパイルされません。
UserControl yoozerControl;
if (pi != pie) {
yoozerControl = new UserControl1();
String s = yoozerControl.TextBox1.Text;
. . .
UserControls のコントロールのプロパティにアクセスするにはどうすればよいですか?
アップデート
// I was able to successfully test this by changing UserControl1's TextBox1 Modifier
// property to public, and the same with UserControl2's label1 Modifier property.
UserControl1 yoozerControl = null;
UserControl2 yowzerControl = null;
String s = String.Empty;
if (AppType.Equals(SearchTypes.Platypus)) {
yoozerControl = new UserControl1();
s = yoozerControl.textBox1.Text;
} else {
yowzerControl = new UserControl2();
s = yowzerControl.label1.Text;
}
if (!(null == yoozerControl)) {
panel1.Controls.Add(yoozerControl);
yoozerControl.Dock = DockStyle.Fill;
MessageBox.Show(s);
}
if (!(null == yowzerControl)) {
panel1.Controls.Add(yowzerControl);
yowzerControl.Dock = DockStyle.Fill;
MessageBox.Show(s);
}