2013-02-05 112 views
1

我有一個Windows Form Application.I想要當應用程序運行時,我的窗口將始終在任務欄上,在右側表示在用戶屏幕的右下角。無所謂用戶屏幕分辨率是多少。因此,我該如何做到這一點?在用戶屏幕上設置窗口的默認位置

+0

通過「任務欄右側的」你的意思是在通知區域? –

+0

**上方**任務欄或**(重疊)任務欄頂部**?另請注意,任務欄不**總是停留在底部。 –

+0

你只想要其中一個彈出式通知氣球,或者這是一種會一直存在的形式嗎? –

回答

3

爲了擴大MeNoMore's answer,使您的形式在主屏幕的右下角顯示(與任務欄上的屏幕通常是主屏幕),您將設置在下面你的表單的構造函數。

this.StartPosition = FormStartPosition.Manual; 
this.Location = new Point(Screen.PrimaryScreen.WorkingArea.Width - this.Width, 
          Screen.PrimaryScreen.WorkingArea.Height - this.Height); 
1

你可以嘗試使用:

Form1.Location = new Point(x, y); 

看看here

+0

請注意,這是表單的左上角,您需要通過Screen.PrimaryScreen.WorkingArea或類似方法讀取屏幕分辨率並進行數學運算。 –

+0

@ScottChamberlain你的權利,他仍然需要考慮分辨率 – CloudyMarble

+0

但用戶分辨率可能會有所不同。所以我怎麼能相對地給它的位置。如果我可以使用x和y的百分比,那將是可能的。 – DarkenShooter

1

其他的答案將無法正常工作。你所要做的件事:

  1. 設置窗體的StartPositionManual
  2. 設置窗體的Location指向你想要

例如什麼窗體的構造函數中:

StartPosition = FormStartPosition.Manual; 
Location = new Point(Screen.PrimaryScreen.WorkingArea.Width - Width, 
        Screen.PrimaryScreen.WorkingArea.Height - Height); 
0

您使用WinTaskBar組件的考慮臺式機/屏幕上的其他因素。

[DllImport("SHELL32", CallingConvention = CallingConvention.StdCall)] 
    static extern uint SHAppBarMessage(int dwMessage, ref APPBARDATA pData); 

它會讓你控制位置(左邊&頂部)。

例子:

formStartLeft = Screen.PrimaryScreen.WorkingArea.Width - this.Width; 
formStartTop = taskBarHeight + Screen.PrimaryScreen.WorkingArea.Height;