簡體   English   中英

如何確定winform所在的監視器?

[英]How do I determine which monitor my winform is in?

我一直在這個網站上下,發現了很多關於Screen類的信息,以及如何計算監視器的數量等,但我如何確定一個表單目前在哪個監視器?

比使用邊界更簡單的方法是使用Screen.FromControl()方法。 這與Windows使用的功能相同。

Screen.FromControl(this)

將返回包含您調用它的大部分表單的屏幕的屏幕對象。

這應該是你的訣竅:

private Screen FindCurrentMonitor(Form form) 
{ 
    return Windows.Forms.Screen.FromRectangle(new Rectangle( _
        form.Location, form.Size)); 
} 

它將返回其中包含大部分表單的屏幕。 Alternativley,你可以使用

return Windows.Forms.Screen.FromPoint(Form.Location);

返回窗體左上角的屏幕。

我確實注意到了,但是我希望有更多的東西(來自.net而不是來自你。)所以基於你的建議,我這樣做了:

    foreach (Screen screen in System.Windows.Forms.Screen.AllScreens)
    {
        if (screen.Bounds.Contains(this.Location))
        {
            this.textBox1.Text = screen.DeviceName;
        }
    }

每個Screen對象都有一個Bounds屬性,您可以使用它來查找屏幕占用的坐標,只需檢查表單的位置即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM