2010-06-19 54 views
2

我想在被調用的窗口中顯示一個新窗體。 我知道一種方式來顯示類似如下的PrimaryScreen這種形式或虛擬屏幕通過代碼:如何在C#中的當前屏幕上顯示錶單?

MyForm.Location = Screen.PrimaryScreen.Bounds.Location; 

,但我想它顯示當前屏幕上。 有沒有辦法找出並在當前屏幕上顯示它?

+0

這是您的應用程序的主要形式,還是它將擁有一個所有者? – 2010-06-19 00:46:42

+0

您是否試圖用新窗體替換顯示的窗體?就好像你在做巫師? – Robaticus 2010-06-19 00:46:46

回答

3

您可以使用相同的技術,但不是使用PrimaryScreen,抓住用Screen.FromPointCursor.Position屏幕:聽起來你是不是設置中StartPosition爲手動

Screen screen = Screen.FromPoint(Cursor.Position); 
MyForm.Location = screen.Bounds.Location; 
+0

我試過了。但是,新窗體仍顯示在主屏幕上,窗體大小稍微縮短。我試圖顯示光標所在的屏幕是否是主屏幕,並且我得到正確答案。但是,當我分配的位置,它沒有得到正確分配。 – Sam 2010-06-21 18:04:58

4

我做了這樣的事情,以顯示我的形式集中到當前屏幕:

var screen = Screen.FromPoint(Cursor.Position); 
myForm.StartPosition = FormStartPosition.Manual; 
myForm.Left = screen.Bounds.Left + screen.Bounds.Width/2 - myForm.Width/2; 
myForm.Top = screen.Bounds.Top + screen.Bounds.Height/2 - myForm.Height/2; 
0

如果你已經有了一個父窗體和要打開在同一屏幕上一個新的形式,給ShowDialog方法對父窗體的引用:newForm.ShowDialog(this);如果沒有所有者參數(「this」),即使您的父窗體位於另一個屏幕上,新窗體也可能會在主屏幕上打開。

1
  1. 在設計模式下單擊窗體。
  2. 將StartPosition屬性更改爲CenterScreen。

這應該打開活動屏幕上的窗體。有關更多StartPosition的值,請參閱 this

相關問題