|
new Form_Main() を自分で実行するということは
Designer が new して画面に表示しているフォームとは別のフォーム画面を作っているということなので
それはたぶんやりたいこととは違うっす。
そもそも Form1 は既にあるので new して保持すべきは子フォームのみのはず。
閉じた Form の再利用は面倒なので Visible だけ操作すればそれっぽく動作して見えるはず
--Form1.cs--
public partial class Form1 : Form
{
private FormSub1 formSub1;
private FormSub2 formSub2; ...
// コンストラクタでやるか Load でやるか他の場所でやるかは設計方針次第
private void Form1_Load(object sender, EventArgs e)
{
formSub1 = new FormSub1();
formSub2 = new FormSub2();
}
// ボタン1
private void button1_Click(object sender, EventArgs e)
{
formSub2.Visible = false; // 他も
formSub1.Visible = true;
}
// ボタン2
private void button2_Click(object sender, EventArgs e)
{
formSub1.Visible = false; // 他も
formSub2.Visible = true;
}
}
子フォームを操作員が手で閉じちゃうといろいろ問題が発生するけど、それは後の課題ってことで。
|