如何在第一个窗口的正上方打开第二个窗口,而不是在对角线的右下角或默认位置后退?我只是想制作一些要点击的屏幕。我还有其他方法可以这样做吗?
为什么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 );
都应该工作!