在c#中控制另一个已经打开的表单
本文关键字:表单 控制 另一个 | 更新日期: 2023-09-27 18:04:08
我在Windows CE 5.0中使用Compact Framework 2.0。
在不同的表单之间切换控制有困难。
为了说明这一点,我创建了一个简单的例子。
假设你有两个表单,第一个表单有一个按钮用来加载第二个表单。
当你点击按钮时,第二个表单已经加载,你可能想要有一个控件,以便返回到第一个表单,或者你可能只是想在第二个表单加载后关闭第一个表单。
下面是一个关于在第二个表单加载后关闭第一个表单的示例:
public partial class Form1 : Form
{
private void button1_Click(object sender, EventArgs e)
{
this.Close();
Form2 secondForm = new Form2();
secondForm.Show();
}
}
但不幸的是,这关闭了两个表单,而不仅仅是当前的表单(form1)。
所以我认为这必须在第二个表单代码内,但我不知道如何从它访问第一个表单。
有什么建议吗?
两个表单关闭的原因是Form2的父窗体是Form1。WinForms的工作方式是,如果父进程被关闭(this.Close()
),那么任何子进程将被自动关闭。
this.Hide();
Form2 secondForm = new Form2();
secondForm.Show();
您可能需要一个连接到secondForm的方法。关闭事件调用this.Show()
,以确保您的表单重新出现
Form1是在Program.cs中创建并启动的MainForm。若此表格已关闭。整个应用程序结束。试着像我之前展示的那样隐藏Form1,或者使用控制器类来协调这两个Form。