(C#/ WindowsMobile 6)
让我们使用3个STATIC表单的应用程序:Form1,Form2,Form3,其中Form1通过调用Form2.Show()打开Form2,Form2对Form3执行相同的操作 . Form2和Form3有一个“退出”按钮,只是隐藏表单(不是“关闭”,只是隐藏) .
因此,我们执行以下步骤:
-
打开申请表;
-
单击Form1上的"Form2"按钮转到Form2;
-
单击Form2上的"Form3"按钮转到Form3;
-
通过单击它的文件打开文件资源管理器和"re-open"应用程序 . 表格3出现;
-
通过单击Form3上的"Exit"按钮隐藏Form3(this.Hide()) . 这就是问题:文件浏览器出现而不是Form2 .
每次隐藏表单时我都不想调用“callingform”.Show() . 这“工作”,但文件浏览器屏幕出现在“this.Hide()”之后和“callinform.Show()”之前,我需要“控制”谁在调用谁 .
怎么解决这个?有没有办法以所出现的相同顺序将所有应用程序的表单带到前台?
提前致谢 .
2 回答
真的没有办法 . 您可以实现一种以与第一个答案类似的方式存储表单的方法,但是当您切换时,您需要执行以下操作:
这会将所有表单放在Explorer之前 .
您可能需要对此进行一些调查,但是我可以尝试查看Application.Forms []集合 .
也许有人可以确认或否认这一点,但我认为通常,Application.OpenForms [0]将是主要/初始形式,后续的Form外观在Application.OpenForms [1],Application.OpenForms [2]等......
因此,您只需尝试向后浏览此Forms集合即可 .
像(或变体)的东西,
这将允许您确保出现的最后一个表格被带到前面并立即对用户可见 . 如果您需要任何澄清,请告诉我 .
链接到MSDN:http://msdn.microsoft.com/en-us/library/system.windows.forms.application.openforms.aspx