C# 保存双监视器的窗体位置和大小
我的代码在表单关闭时保持表单大小和位置,并在加载表单时定位和调整表单大小C# 保存双监视器的窗体位置和大小,c#,.net,winforms,multiple-monitors,C#,.net,Winforms,Multiple Monitors,我的代码在表单关闭时保持表单大小和位置,并在加载表单时定位和调整表单大小 我想考虑到,在加载时,持久化位置可能在屏幕边界之外。易于在单个监视器设置中进行测试,但对于多个监视器,如何进行测试。我不知道屏幕是水平设置的还是垂直设置的,等等。不知何故,我需要确定所有屏幕的组合区域,并找出表单的持久化位置是否在该区域内。看看一对用于记忆和恢复窗口状态的好函数是和GetWindowPlacement不仅检索普通窗口的当前状态和位置,而且对于最大化的窗口,检索其在最大化之前的位置 出于您的目的,SetWin
我想考虑到,在加载时,持久化位置可能在屏幕边界之外。易于在单个监视器设置中进行测试,但对于多个监视器,如何进行测试。我不知道屏幕是水平设置的还是垂直设置的,等等。不知何故,我需要确定所有屏幕的组合区域,并找出表单的持久化位置是否在该区域内。看看一对用于记忆和恢复窗口状态的好函数是和
GetWindowPlacement
不仅检索普通窗口的当前状态和位置,而且对于最大化的窗口,检索其在最大化之前的位置
出于您的目的,SetWindowPlacement
非常有用,因为如果要求将窗口还原到离屏幕最近的屏幕上,它知道将窗口推到最近的屏幕上:
如果WINDOWPLACEMENT
中指定的信息将导致窗口完全脱离屏幕,系统将自动调整坐标,以便窗口可见,同时考虑屏幕分辨率和多监视器配置的变化
不幸的是,我不知道这两个函数的现成.NET等价物,尽管它们可以通过p/Invoke(cf)直接调用。Thank的可能副本。我在搜索中没有找到这个。我投票决定结束我的问题。