【发布时间】:2017-06-16 08:08:57
【问题描述】:
我想用 FormStartPosition.CenterParent 从另一个表单打开一个表单。 当有多个屏幕并且我通过 Visual Studio 运行程序时,这可以正常工作。但是当我运行 EXE 文件时,它实际上不起作用。
var dialog = new Form();
dialog.StartPosition = FormStartPosition.CenterParent;
dialog.Show(this);
但是当我运行 EXE 文件(不是通过 Visual Studio)并将我的表单拖到另一个屏幕并按下运行上述代码的按钮时,它仍然会在另一个屏幕中打开表单。
我找到了在同一屏幕上打开表单的解决方案,但应该有一种方法可以更轻松地始终在 CenterParent 中打开表单?
这里的代码 sn-p 至少可以使表单始终在同一屏幕上打开:
var dialog = new Form();
dialog.StartPosition = FormStartPosition.Manual;
var currentScreen = Screen.FromControl(this);
dialog.Location = currentScreen.Bounds.Location;
dialog.Show(this);
有什么想法吗?
/罗伯
【问题讨论】:
-
CenterParent用于 MDI 子窗体,它不会在其父屏幕上居中窗体。您实际上想做什么,在不同的屏幕上打开每个表单? -
啊,这实际上解释了一些事情。不,我试图在放置表单的同一屏幕中打开子表单。我现在将为此提供一个解决方案。谢谢