当用户调整我的程序窗口(Winforms)的大小和位置时,他们希望在关闭并重新打开程序后看到窗口处于同一位置。我所做的是存储窗体的Width、Height、Location.X和Location.Y属性,并在重新打开程序时将其设置回来。
问题在于当窗口被最大化时,Width、Height、X、Y不是指非最大化状态下的宽度/高度/X/Y,而是指最大化的尺寸。
因此,当用户将窗口最大化、关闭并重新打开程序,然后取消最大化窗口时,窗口不会返回到原始位置/大小,而是停留在完整的大小/位置。
因此,在不使用存储变量的方法的情况下,如何获取窗口最大化时的非最大化位置和大小呢?
问题在于当窗口被最大化时,Width、Height、X、Y不是指非最大化状态下的宽度/高度/X/Y,而是指最大化的尺寸。
因此,当用户将窗口最大化、关闭并重新打开程序,然后取消最大化窗口时,窗口不会返回到原始位置/大小,而是停留在完整的大小/位置。
因此,在不使用存储变量的方法的情况下,如何获取窗口最大化时的非最大化位置和大小呢?
WindowState != FormWindowState.Maximized
就可以了。 - cremorWindowState == FormWindowState.Maximized
分配给变量并测试该布尔值来进一步改进此答案。 - David Arno