2011-01-31 30 views
0

我想在中心屏幕上顯示我的WinApp,因此我將StartPosition屬性設置爲CenterScreen,但窗口不顯示在屏幕中心。C#中的StartPosition問題?

它有什麼問題?我錯過了什麼嗎?

P.S:
我從一個主窗口和一個按鈕顯示窗口。

編輯:
我用來顯示窗口的代碼。

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

很可能,您做錯了什麼。 – 2011-01-31 19:39:33

+0

發佈您正在使用的代碼。 – David 2011-01-31 19:42:08

回答

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