C# WinForm 子窗体调用父窗体函数实现窗体切换
资源描述
本资源文件演示了如何在C# WinForm应用程序中实现子窗体调用父窗体函数,从而实现关闭当前窗体并打开另一个窗体的功能。具体实现方式如下:
- 父窗体(From1):在父窗体中嵌入一个
Panel
控件(panel1
)。 - 子窗体(From2 和 From3):在
panel1
中载入子窗体From2
。当用户在From2
中点击按钮时,panel1
会清除当前内容并载入From3
。同样,当用户在From3
中点击按钮时,panel1
会清除当前内容并重新载入From2
。
实现步骤
- 父窗体设计:
- 在父窗体
From1
中添加一个Panel
控件,命名为panel1
。 - 编写函数
LoadForm(Form form)
,用于在panel1
中加载指定的子窗体。
- 在父窗体
- 子窗体设计:
- 在子窗体
From2
和From3
中分别添加按钮,并为按钮编写事件处理程序。 - 在按钮事件处理程序中,调用父窗体的函数来清除当前窗体并加载新的窗体。
- 在子窗体
- 代码示例:
- 父窗体
From1
中的LoadForm
函数:public void LoadForm(Form form) { panel1.Controls.Clear(); form.TopLevel = false; form.FormBorderStyle = FormBorderStyle.None; form.Dock = DockStyle.Fill; panel1.Controls.Add(form); form.Show(); }
- 子窗体
From2
中的按钮事件处理程序:private void btnSwitchToForm3_Click(object sender, EventArgs e) { ((From1)this.ParentForm).LoadForm(new From3()); }
- 子窗体
From3
中的按钮事件处理程序:private void btnSwitchToForm2_Click(object sender, EventArgs e) { ((From1)this.ParentForm).LoadForm(new From2()); }
- 父窗体
使用说明
- 下载并解压资源文件。
- 打开解决方案文件(.sln),使用 Visual Studio 或其他 C# IDE 打开项目。
- 运行项目,观察子窗体如何通过调用父窗体函数实现窗体切换。
注意事项
- 确保父窗体和子窗体的命名与代码示例中的命名一致。
- 如果需要修改窗体名称或控件名称,请确保相应代码中的引用也进行相应修改。
通过本资源文件,您可以学习如何在C# WinForm应用程序中实现子窗体与父窗体之间的交互,并实现窗体的动态切换。