0

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

从这个子菜单中,parentmdiform一个名为的表单被打开。从studentmasterform这个表单中点击一个按钮,一个名为existingstudent form 的新表单被打开。

当我想studentmasterform再次返回时Existingstudentform,单击一个按钮即可打开。studentmasterform但问题是我之前studentmasterform从父表单打开并没有得到焦点或关闭。这意味着我得到了两个相同表单的单独对象,即 Studentmasterform存在于我的parentmdiform.

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

谁能告诉我怎么做?

4

2 回答 2

0

您需要跟踪studentmasterform. 如果它在那里,创建,不要创建新的,做Keyboard.Focus(oldOne);

PS 有studentmasterform.Closed事件可以帮助您保持跟踪。

于 2012-09-12T09:29:24.533 回答
0

我希望我明白你想做什么。首先,如果您希望 Form 在失去焦点时关闭,请查看 Form 类的“Deactivate”事件。[MSDN 停用事件]:http: //msdn.microsoft.com/en-us/library/system.windows.forms.form.deactivate.aspx

当您只需要打开一次表单时,您可以检查“parentmdiform.MdiChildren”以获取您的 MDI From 的所有子项。你可以给你的表单一个唯一的名字,这样更容易集中注意力。

问候, C#er

于 2012-09-12T09:34:50.177 回答