.net windows应用程序记住表单大小和位置

时间:2016-01-25 12:35:02

标签: c# .net windows-applications

我有一个包含数百种表单的Windows应用程序。我想在用户会话期间记住每个的大小,位置和状态,以便下次启动它时大小和位置相同。

我在应用程序设置中看到了很多这样做的例子,但是由于我有很多表单,所以我不想介绍大的应用程序设置列表。除此之外,我还需要手动为每个表单执行此操作。

有人有一个通用的解决方案,以便我可以在一个地方进行编码,这将为应用程序中的所有表单完成工作吗?

请告知

2 个答案:

答案 0 :(得分:1)

让所有表单都继承相同的基本表单,并在其中实现将状态保存到XML文件以及读取和加载它的操作。 调整大小时的事件处理程序应更新值并存储到xml文件。

这是我能看到的唯一方式。你必须自己管理

答案 1 :(得分:0)

我会使用带有特定DataTable的DataSet来存储每个窗口的位置和大小。 每个窗口都可以通过数字或文本字符串或其他独特的东西来标识。也许它的名字。使用DataTable的WriteXml和ReadXml方法来保存/加载到xml文件中。

当然,有很多方法可以实现这一切。继承(如在另一个答案中所建议的)可能是最好的之一。

另一个想法是一个类(让我们只称它为X),它保存所有Windows的集合(例如System.Collection.Generic.List)。 Windows(Forms)可以通过一些“主”类(即创建它们的类)添加到此集合中。 如果不可能,您可以使用单例设计模式,并让每个窗口(窗体)获得对类X的同一实例的访问权限,以将其自身添加到集合中。这也允许类(X)连接事件处理程序,在窗口移动,调整大小等时更新其值。