2011-01-31 3 views
0

내 WinApp을 센터 화면에 표시하고 싶기 때문에 StartPosition 속성을 CenterScreen으로 설정했지만 화면이 화면 중앙에 나타나지 않습니다.C#의 시작 위치 문제?

무엇이 문제입니까? 내가 놓친 게 있니?

피씨 :
주 창 및 버튼으로 창을 표시합니다.

편집 :
창을 표시하는 데 사용하는 코드.

Form_CO form_CO = new Form_CO(); 
void button_CO_Click(object sender, EventArgs e) 
{ 
    try 
    { 
     //StaticVariables.Form_CO_IsShown is to prevent opening the same multiple windows 
     if (!StaticVariables.Form_CO_IsShown) 
     { 
      form_CO = new Form_CO(); 
      form_CO.Show(); 
      StaticVariables.Form_CO_IsShown = true; 
     } 
     else 
     { 
      form_CO.WindowState = FormWindowState.Normal; 
      form_CO.Activate(); 
     } 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show(ex.Message, "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error); 
    } 
} 
+0

대부분 잘못된 것입니다. –

+0

사용중인 코드를 게시하십시오. – David

답변

3

FormStartPosition.CenterScreen은 비디오 DPI 설정으로 자체 조정되면서 크기가 조정되면 문제가 될 수 있습니다. 이 코드를 양식에 붙여 넣어 고칩니다.

protected override void OnLoad(EventArgs e) { 
     var scr = Screen.FromPoint(this.Location); 
     this.Left = scr.WorkingArea.Left + (scr.WorkingArea.Width - this.Width)/2; 
     this.Top = scr.WorkingArea.Top + (scr.WorkingArea.Height - this.Height)/2; 
     base.OnLoad(e); 
    } 
+0

많은 분들께 고마워, 위의 코드로 내 문제가 해결되었습니다. –