我想在被調用的窗口中顯示一個新窗體。 我知道一種方式來顯示類似如下的PrimaryScreen這種形式或虛擬屏幕通過代碼:如何在C#中的當前屏幕上顯示錶單?
MyForm.Location = Screen.PrimaryScreen.Bounds.Location;
,但我想它顯示當前屏幕上。 有沒有辦法找出並在當前屏幕上顯示它?
我想在被調用的窗口中顯示一個新窗體。 我知道一種方式來顯示類似如下的PrimaryScreen這種形式或虛擬屏幕通過代碼:如何在C#中的當前屏幕上顯示錶單?
MyForm.Location = Screen.PrimaryScreen.Bounds.Location;
,但我想它顯示當前屏幕上。 有沒有辦法找出並在當前屏幕上顯示它?
您可以使用相同的技術,但不是使用PrimaryScreen,抓住用Screen.FromPoint和Cursor.Position屏幕:聽起來你是不是設置中StartPosition爲手動
Screen screen = Screen.FromPoint(Cursor.Position);
MyForm.Location = screen.Bounds.Location;
我試過了。但是,新窗體仍顯示在主屏幕上,窗體大小稍微縮短。我試圖顯示光標所在的屏幕是否是主屏幕,並且我得到正確答案。但是,當我分配的位置,它沒有得到正確分配。 – Sam 2010-06-21 18:04:58
。
我做了這樣的事情,以顯示我的形式集中到當前屏幕:
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;
如果你已經有了一個父窗體和要打開在同一屏幕上一個新的形式,給ShowDialog方法對父窗體的引用:newForm.ShowDialog(this);
如果沒有所有者參數(「this
」),即使您的父窗體位於另一個屏幕上,新窗體也可能會在主屏幕上打開。
這應該打開活動屏幕上的窗體。有關更多StartPosition的值,請參閱 this。
這是您的應用程序的主要形式,還是它將擁有一個所有者? – 2010-06-19 00:46:42
您是否試圖用新窗體替換顯示的窗體?就好像你在做巫師? – Robaticus 2010-06-19 00:46:46