我有代碼在關閉時保持表單大小和位置,並在加載表單時定位和調整表單的大小。支持雙顯示器的表單位置和大小
我想要考慮到在加載時,持久位置可能超出屏幕邊界。易於在單個顯示器設置中進行測試,但對於多個顯示器,我該如何測試。我不知道屏幕是水平還是垂直設置等等。不知怎的,我需要確定所有屏幕的組合區域,並確定表單是否存在位置在該區域內。
我有代碼在關閉時保持表單大小和位置,並在加載表單時定位和調整表單的大小。支持雙顯示器的表單位置和大小
我想要考慮到在加載時,持久位置可能超出屏幕邊界。易於在單個顯示器設置中進行測試,但對於多個顯示器,我該如何測試。我不知道屏幕是水平還是垂直設置等等。不知怎的,我需要確定所有屏幕的組合區域,並確定表單是否存在位置在該區域內。
在C#: How to make a form remember its Bounds and WindowState (Taking dual monitor setups into account)
謝謝。我沒有在我的搜索中找到這個。我已投票結束我的問題。 – Jeremy 2011-01-21 16:58:06
看看一雙好的功能,使用記憶和恢復窗口狀態是GetWindowPlacement
和SetWindowPlacement
。 GetWindowPlacement
不僅檢索正常窗口的當前狀態和位置,而且還檢索最大化窗口的最大化之前的位置。
你的目的,SetWindowPlacement
是有用的,因爲知道要微調窗口到最近的屏幕,如果它要求恢復其關閉屏幕:
如果
WINDOWPLACEMENT
指定的信息將導致一個窗口,是完全關閉屏幕,系統會自動調整座標,以便窗口可見,同時考慮到屏幕分辨率和多顯示器配置的變化。
不幸的是,我不知道這兩個函數的現成的.NET等價物,儘管它們可以直接通過P/Invoke調用(參見http://pinvoke.net)。
[C#:如何使窗體記住它的界限和WindowState(考慮雙顯示器設置)](http://stackoverflow.com/questions/495380/c-how-to-make-a -form-remember-its-bounds-and-windowstate-taking-dual-monitor-s) – Jeremy 2011-01-21 16:57:44