在mdi应用程序中使用不同的形式

时间:2012-09-12 09:24:30

标签: c# winforms

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

在此parentmdiform的子菜单中,名为studentmasterform的表单会打开。只需点击一下按钮,就会打开一个名为existingstudent表单的新表单。

如果我想再次从studentmasterform返回Existingstudentform,只需点击一个studentmasterform即可打开的按钮。但问题是我之前打开的studentmasterform父表单不会被集中或处理掉。这意味着我得到两个相同形式的对象,即Studentmasterform,它存在于我的parentmdiform中。

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

谁能告诉我怎么样?

2 个答案:

答案 0 :(得分:0)

您需要跟踪studentmasterform的创建。如果它存在,创建,不创建新的,请执行Keyboard.Focus(oldOne);

P.S。有studentmasterform.Closed事件可帮助您保持跟踪。

答案 1 :(得分:0)

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

如果您只需要打开一个表单,就可以检查“parentmdiform.MdiChildren”以获取MDI From的所有子项。您可以为表单指定一个唯一的名称,因此更容易集中权利。

问候,C#er