2014-02-07 37 views
2

我有一個兩種形式的應用程序..主窗體加載到屏幕的底部角落。但是我無法隨時在表單的中心加載第二個表單。我曾經做過父母/小孩的事情,但它把我的設計搞砸了一點。有沒有更好的方法來做到這一點?表單位置VB.net

謝謝!如果孩子形式是對話形式

Me.Location = New Point((firstForm.Width - Me.Width)/2, (firstForm.Height - Me.Height)/2) 

回答

2

,那麼所有你需要做的是:

'Set window to lower right of screen 
    Me.Location = New Point(Screen.PrimaryScreen.WorkingArea.Width - Me.Width, Screen.PrimaryScreen.WorkingArea.Height - Me.Height) 
+1

請使用Load事件,以便移動不可見。當時表單已經重新調整。 –

+0

好的,我試過了,但現在將第二種形式加載到第一種形式的左上角。如何居中? – CJSoldier

+0

@CJSoldier你指的是哪個片段?您必須告訴我您所做的與我發佈的內容不同,包括*在您調用代碼時。 – LarsTech

0

如果你想第二個表格中的第一個爲中心,你應該套用這個公式設置中StartPosition屬性:

Dim f As New Form 
f.StartPosition = FormStartPosition.CenterParent 
f.ShowDialog(Me) 

如果子窗體不是一個對話的形式,然後嘗試手動定位的形式:

Dim f As New Form 
f.StartPosition = FormStartPosition.Manual 
AddHandler f.Load, Sub() 
        f.Location = New Point(Me.Left + Me.Width/2 - f.Width/2, _ 
              Me.Top + Me.Height/2 - f.Height/2) 
        End Sub 
f.Show(Me) 
+0

嗯,它把它放到屏幕中間,但不是窗體的中間。它顯示在屏幕的左側。 – CJSoldier

+0

難道你不忘記'yourFirstForm.Width'(和當然的高度)來改變'Screen.PrimaryScreen.WorkingArea.Width'嗎? –

+0

我不理解你的評論。我將yourFirstForm.Width/Height更改爲表單名稱,並將其放在需要位於已打開表單中心的表單上的加載事件中。 – CJSoldier