我有一个带有MDI表单和一些子表单的Windows应用程序。 我需要保存子表单的位置,然后在再次打开时恢复。
如何在C#中做到这一点?
另外,我需要检查子表单的标题栏是否未隐藏在mdi表单下(例如,由于mdi表单的菜单,标题栏可能会被隐藏)。如果是这种情况,那么我需要巧妙地设置位置。
提前致谢...
答案 0 :(得分:2)
查看此CodeProject文章:Restore Form Position and Size in C#
它的要点是你必须获取表单的大小和位置,并将其保留在项目设置中。您必须根据需要稍微调整它(确保表单适合父窗口的边界等)。
答案 1 :(得分:1)
您可以使用表单的.Bounds属性来获取表单的位置和大小。创建表单时,您可以设置.Bounds属性,当表单关闭时,您可以记录位置并将其保存到注册表或文件中。设置.Bounds属性时,您需要确保坐标对当前桌面大小有效,以防用户更改分辨率或出现问题 - 您不希望表单显示在桌面之外。您可以使用Screen.PrimaryScreen.WorkingArea获取当前桌面尺寸,然后比较保存的表单边界的坐标。如果要手动设置位置,还需要将表单的StartPosition属性设置为Manual。