我有一个带有计时器的表单。计时器加载一个对话框,显示表单正忙。当主窗体没有焦点时,繁忙的窗体将加载到电脑屏幕的左上角(这是不期望的)。当表单具有焦点时,它按预期工作。如果将ShowInTaskbar设置为true,那么即使主窗体没有焦点,它也会按预期工作。这里发生了什么,我该如何解决?
C#代码
namespace CenterParentIssue
{
public partial class Main : Form
{
WaitingForm formWindowsWaitingForm;
public Main()
{
InitializeComponent();
}
private void timer1_Tick(object sender, EventArgs e)
{
formWindowsWaitingForm = new WaitingForm();
formWindowsWaitingForm.StartPosition = FormStartPosition.CenterParent;
formWindowsWaitingForm.ShowInTaskbar = false;
formWindowsWaitingForm.ShowDialog();
}
}
}
答案 0 :(得分:1)
您需要为WaitingForm
提供父语境。 ShowDialog()
有一个重载,它以Window作为参数,这个窗口是父/所有者。
//...
formWindowsWaitingForm.ShowDialog(this);
//...