为什么这不会使表格居中到屏幕上?
Form2 mySettings = new Form2();
mySettings.StartPosition = FormStartPosition.CenterParent;
mySettings.Show();
它在我使用时有效:
mySettings.ShowDialog();
但问题是用户在同时打开 Form2 时无法访问主窗体。
有任何想法吗?
这是因为FormStartPosition.CenterParent
表单以它的父位置为中心。Form.Show() 在技术上没有父级。正如评论中已经建议的那样, usingFormStartPosition.CenterScreen
将提供所需的行为。
FormStartPosition.CenterParent
应主要在使用Form.ShowDialog(IWin32Window)
重载时使用。
如果您需要以另一个窗体的位置为中心,则需要使用当前窗体的位置和大小自己计算新窗口坐标。然后使用FormStartPosition.Manual
设置在新创建的表单中使用提供的位置和大小值。