C# 我想以编程方式从一个表单移动到另一个已经存在的旧表单

C# 我想以编程方式从一个表单移动到另一个已经存在的旧表单,c#,visual-studio-2010,forms,C#,Visual Studio 2010,Forms,我使用C#在Windows窗体应用程序中创建了两个窗体。我只想从一种形式转到另一种形式。我不想打开一张新表格 我创建了一个LinkLabel,一个OnClickEventHandler,在该处理程序中,我希望以编程方式移动到已经创建的表单 是否有LinkLabel的任何属性,以便我可以设置其他表单的名称或地址?这样单击它就可以自动将我带到那里?我想您可以用类似的方式打开第二个表单 Form2 f = new Form2(); f.Show(); 如果是这种情况,那么可以将对第二个表单的引用

我使用C#在Windows窗体应用程序中创建了两个窗体。我只想从一种形式转到另一种形式。我不想打开一张新表格

我创建了一个
LinkLabel
,一个
OnClickEventHandler
,在该处理程序中,我希望以编程方式移动到已经创建的表单


是否有
LinkLabel
的任何属性,以便我可以设置其他表单的名称或地址?这样单击它就可以自动将我带到那里?

我想您可以用类似的方式打开第二个表单

 Form2 f = new Form2();
 f.Show();
如果是这种情况,那么可以将对第二个表单的引用保存在全局类级别变量中,并在需要再次显示第二个表单时使用该引用

private Form2 theSecondForm = null;
....

// Open the second form...
theSecondForm = new Form2();
theSecondForm.Show();
// Check if the second form is still available
if(theSecondForm != null && !theSecondForm.IsDisposed)
    theSecondForm.Show();
else
{
    theSecondForm = new Form2();
    theSecondForm.Show();
}
当您需要切换到第二个表单时

private Form2 theSecondForm = null;
....

// Open the second form...
theSecondForm = new Form2();
theSecondForm.Show();
// Check if the second form is still available
if(theSecondForm != null && !theSecondForm.IsDisposed)
    theSecondForm.Show();
else
{
    theSecondForm = new Form2();
    theSecondForm.Show();
}
请注意,在调用第二个表单之前,show方法最好检查变量是否仍然有效,并指向第二个表单的实际实例。您还可以连接到表单关闭事件,以便在用户关闭第二个表单时收到通知

theSecondForm = new Form2();
theSecondForm.Show();
theSecondForm.FormClosed += ClosingSecondForm;

private void ClosingSecondForm(object sender, FormClosedEventArgs e)
{
   // Set the global variable to null... this prevent to call a closed form
   theSecondForm = null;
}

只要调用
yourForm.Activate()
我说的
Form.Activate()
方法没有比Activate()更好的了?在
LinkLabel
中没有内置的功能,有form2.activeForm(),但它说它不能作为方法调用。你在看静态成员,我说的是实例方法。您需要获取显示表单的实例,然后调用
yourForm.Activate()
。明白了吗?谢谢@steve,它帮助我打开了表单,如果表单的名称存储在某个变量中