我正在将Compact Framework 2.0用于Windows CE 5.0中的应用程序。
我在更改不同表单之间的控制时遇到了麻烦。
我创建了一个简单的例子来展示这个。
想象一下,你有两种形式,第一种形式有一个按钮,以便加载第二种形式。
当您单击按钮并加载第二个表单时,您可能想要一个控件以返回到第一个表单,或者您可能只是想在第二个表单加载后关闭第一个表单。
以下是关于加载第二个表单后关闭第一个表单的示例:
public partial class Form1 : Form
{
private void button1_Click(object sender, EventArgs e)
{
this.Close();
Form2 secondForm = new Form2();
secondForm.Show();
}
}
但不幸的是,这会关闭两种形式,而不仅仅是当前形式(form1)。
所以我认为这必须在第二个表单代码中进行,但我不知道如何从中访问第一个表单。
有什么建议吗?
答案 0 :(得分:4)
两个表单都关闭的原因是因为Form2的父表单是Form1。 WinForms的工作方式是,如果父级关闭(this.Close()
),则任何子级都将自动关闭。
执行此操作的典型方法实际上是使用secondForm.ShowDialog()。这将使第一种形式保留在后台,但使其无法选择。如果你想摆脱当前形式隐藏它:
this.Hide();
Form2 secondForm = new Form2();
secondForm.Show();
您可能需要一个方法,连接到secondForm.Closed事件以调用this.Show()
以确保您的表单重新出现。
答案 1 :(得分:0)
Form1是您在Program.cs中创建并启动的MainForm。 如果此表格已关闭。整个申请结束。 尝试隐藏Form1,如之前显示的lan或使用Controller-Class来协调两个Form。