2014-03-12 59 views
0

我有一個帶有計時器的窗體。計時器加載一個對話框來顯示窗體正忙。當主窗體沒有焦點時,繁忙窗體將加載到電腦屏幕的左上角(這不是預期的)。表單具有焦點時,按預期工作。如果將ShowInTaskbar設置爲true,則即使主窗體沒有焦點,它也可以按預期工作。這裏發生了什麼,我該如何解決?父母沒有焦點時CenterParent不工作

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(); 
     } 
    } 
} 

回答

1

你需要給WaitingForm父上下文。 ShowDialog()有一個以Window作爲參數的重載,這個窗口是父/所有者。

//... 
formWindowsWaitingForm.ShowDialog(this); 
//... 
+0

非常感謝你。這讓我瘋狂! – user1438082