Winformで複数のウィンドウを切り替える機能はどうやって実装すればいいですか?
WinForm で複数のウィンドウを切り替える機能を実現するには、以下のような方法があります。
- Form.ShowDialog()
- Form.閉じる
private Form1 form1;
private Form2 form2;
private void btnSwitchToForm1_Click(object sender, EventArgs e)
{
if (form1 == null)
{
form1 = new Form1();
form1.FormClosed += (s, args) => form1 = null;
form1.Show();
}
else
{
form1.Show();
form1.WindowState = FormWindowState.Normal;
form1.BringToFront();
}
if (form2 != null)
form2.Hide();
}
private void btnSwitchToForm2_Click(object sender, EventArgs e)
{
if (form2 == null)
{
form2 = new Form2();
form2.FormClosed += (s, args) => form2 = null;
form2.Show();
}
else
{
form2.Show();
form2.WindowState = FormWindowState.Normal;
form2.BringToFront();
}
if (form1 != null)
form1.Hide();
}
- TabControl.SelectedTab
private void btnSwitchToTab1_Click(object sender, EventArgs e)
{
tabControl1.SelectedTab = tabPage1;
}
private void btnSwitchToTab2_Click(object sender, EventArgs e)
{
tabControl1.SelectedTab = tabPage2;
}
- パネル.コントロール
private void btnSwitchToPanel1_Click(object sender, EventArgs e)
{
panel1.Controls.Clear();
panel1.Controls.Add(new UserControl1());
}
private void btnSwitchToPanel2_Click(object sender, EventArgs e)
{
panel1.Controls.Clear();
panel1.Controls.Add(new UserControl2());
}
これらの手法で、マルチウィンドウ切り替えの機能は達成できます。自身のニーズに合わせて、それらのうちの1つを選択して、実現できます。