C# 在mdi应用程序中使用不同的表单

C# 在mdi应用程序中使用不同的表单,c#,winforms,C#,Winforms,我有一个使用C#的应用程序,其中我有一个名为parentmdiform的MdiContainer表单,在该表单中打开我的所有子表单 从此parentmdiform的子菜单打开名为studentmasterform的表单。单击按钮可从此表单打开名为existingstudent form的新表单 当我想从现有studentform再次返回到studentmasterform时,点击一个按钮,studentmasterform就会打开。但问题是,我以前从父窗体打开的studentmasterform

我有一个使用C#的应用程序,其中我有一个名为
parentmdiform
的MdiContainer表单,在该表单中打开我的所有子表单

从此
parentmdiform
的子菜单打开名为
studentmasterform
的表单。单击按钮可从此表单打开名为existingstudent form的新表单

当我想从
现有studentform
再次返回到
studentmasterform
时,点击一个按钮,
studentmasterform
就会打开。但问题是,我以前从父窗体打开的
studentmasterform
没有得到集中或处理。这意味着我会得到两个单独的同一窗体的对象,即存在于我的
parentmdiform
中的studentmasterform

我想要的是,当我单击MDI应用程序中的任何其他表单以访问早期表单时,相同的表单对象应该被聚焦或处理掉


有人能告诉我怎么做吗?

您需要跟踪
studentmasterform
的创建过程。如果有,创建,不创建新的,做
Keyboard.Focus(旧的)


另外,有一个
studentmasterform.Closed
活动可以帮助您保持跟踪。

我希望我了解您想要做什么。 首先,如果希望表单在失去焦点时关闭,请查看表单类的“Deactivate”事件。[MSDN停用事件]:

当您只需要打开一次表单时,可以选中“parentmdiform.MdiChildren”以从中获取MDI的所有子级。您可以为表单指定一个唯一的名称,以便更容易将焦点放在右侧

你好,C#er