如何在第一个窗口的正上方打开第二个窗口,而不是在对角线的右下角或默认位置后退?我只是想制作一些要点击的屏幕。我还有其他方法可以这样做吗?

为什么CenterParent不这样做? CenterParent然后做什么?

最佳答案

尝试将新表单的位置设置为等于第一个现有表单的位置。确保第二个窗体的StartPosition属性设置为“手动”。假设您的表格大小相同。

“浮动”形式的示例构造函数:

// reference to the form underneath, as it might
// change location between creating the FloatingWindow, and showing
// FloatingWindow!
Form BeneathWindow;

public FloatingWindow(Form BeneathWindow)
{
   InitializeComponent();

   // save this for when we show the form
   this.BeneathWindow = BeneathWindow;
   StartPosition = FormStartPosition.Manual;

}

// OnLoad event handler
private void FloatingWindowLoad(object sender, EventArgs e)
{
   Location = BeneathWindow.Location;
}


如果您的表单大小不同,则可能需要将它们居中。您可以按照其他人的建议使用CenterParent,也可以像我有时喜欢的那样手动将它们居中:

Location = new Point((BeneathWindow.Width - Width)/2 , (BeneathWindow.Height - Height)/2 );


都应该工作!

07-24 09:37