设置表单的父级

我有一个Windows表单,我想打开一个状态表单,上面写着“正在保存…”,然后在保存完成时消失。 我想将这个小状态表单放在调用表单的中间。 我已经尝试将“StartPosition”设置为“CenterParent”,但它确实有效。 我从另一个表单创建状态表单,如下所示:

SavingForm saving = new SavingForm(); savingForm.Show(); Thread.Sleep(500); //Someone said this is bad practice ... why? savingForm.Close(); 

呼叫forms不是“父母”吗? 当我设置一个保存手表时,它表示它没有父母。

我试过了:

 SavingForm saving = new SavingForm(); saving.Parent = this; savingForm.Show(); Thread.Sleep(500); savingForm.Close(); 

它会引发exception“顶级控件无法添加到控件中”。

如何将此状态窗口置于调用窗口中心?

提前致谢

我会做这样的事情:

 SavingForm saving = new SavingForm(); savingForm.ShowDialog(this); 

在SavingForm中,我将在加载处理程序中启动一个运行500毫秒的计时器,然后在完成后关闭表单。 这样清洁。 ShowDialog还会锁定您的UI以仅显示保存表单,并且不允许用户使用任何内容。

用这个:

 saving.Show(this); 

在显示表单时设置所有者。

编辑: ShowDialog()方法也有一个重载,让你指定所有者,如果这是你决定去的路线:

 saving.ShowDialog(this);