2014-03-12 2 views
0

타이머가있는 양식이 있습니다. 타이머가 양식이 사용 중임을 나타내는 대화 상자를로드합니다. 기본 양식에 포커스가 없으면 PC 화면 왼쪽 상단에 바쁜 양식이로드됩니다 (예상하지 않음). 양식에 포커스가 있으면 예상대로 작동합니다. 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

관련 문제