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