UserControl将Form带到前面

时间:2012-10-16 23:17:57

标签: c# winforms

自定义UserControl是否有办法将应用程序的主窗体带到前面?

基本上我正在与一些第三方库集成,每次我称之为应用程序都被带到其他所有的前面。我希望允许自定义控件请求主表单将其自身重新放在所有内容之上。

我曾考虑从主窗体中捕获Leave事件,但这似乎不是一个好主意。

程序层次结构......

MainForm > TabControl > TabPages[] > each as a Custom UserControl

我宁愿不必让父母或孩子知道对方(除非这是推荐的做法)。我的正常开发是基于网络的,所以谁在谈论谁和Windows Forms应用程序的正确设计对我来说仍然是新的。

1 个答案:

答案 0 :(得分:2)

你可以尝试

Application.OpenForms[0].Activate() // or BringToFront()

但请记住,在使用Main方法启动主表单之前,您应该有任何已打开的表单:

Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
// do not open any forms here
Application.Run(new MainForm());

如果你真的需要在主表单之前打开一些表单,那么这将是:

Application.OpenForms["MainForm"].Activate()