C#, 在MainForm上点击按钮1切换到form1,点击按钮2切换到form2,点击按钮3切换到form3,点击按钮4切换到form4,点击按钮5切换到form5,每个按钮可重复点击,每次点击按钮只能显示一个窗体,运行程序时默认显示MainForm的完整代码
时间: 2024-09-07 07:03:26 浏览: 35
在C#中,你可以使用Windows Forms应用程序结构来实现这个功能。首先,你需要创建五个不同的Form类(Form1至Form5),并将它们作为MainForm的子窗口。然后,在MainForm上设置一个TabControl控件来管理各个Form的显示和隐藏。以下是基本的代码示例:
```csharp
using System;
using System.Windows.Forms;
public partial class MainForm : Form
{
private Form1 form1 = new Form1();
private Form2 form2 = new Form2();
// ...重复为Form3, Form4, Form5
public MainForm()
{
InitializeComponent();
TabControl.tabControl1.SuspendLayout(); // 关闭TabControl以便添加新的页
tabControl.tabControl1.Controls.Clear(); // 清除所有现有的标签页
// 添加Form1到TabControl
TabPage tabPage1 = new TabPage("Form1");
tabPage1.Controls.Add(form1);
tabControl.tabControl1.TabPages.Add(tabPage1);
// ...重复为Form2, Form3, Form4, Form5
// 注意替换"TabPage2", "TabPage3", 等等,以及对应的Form类名
// 默认显示MainForm
this.Show();
}
private void button1_Click(object sender, EventArgs e)
{
CloseCurrentForm();
ShowForm(form1);
}
private void button2_Click(object sender, EventArgs e)
{
CloseCurrentForm();
ShowForm(form2);
}
// ...为button3, button4, button5编写类似的方法
private void CloseCurrentForm()
{
if (tabControl.tabControl1.SelectedTab != null)
((Form)tabControl.tabControl1.SelectedTab.Controls[0]).Close();
}
private void ShowForm(Form form)
{
foreach (TabPage tabPage in tabControl.tabControl1.TabPages)
{
if (tabPage.Tag is Form && (Form)tabPage.Tag == form)
{
tabPage.Selected = true;
return;
}
}
tabControl.tabControl1.SelectedIndex = 0; // 如果找不到就显示第一个Form
}
}
// 类形如Form1, Form2 的定义:
public partial class Form1 : Form { ... }
```
阅读全文