0

我正在实施一个包含很多表单和控件的项目。如果我选择为用户动态创建弹出表单以指定选项,那么获取控制细节以保存在列表或其他内容中的最佳方法是什么,在用户完成指定特定选项(用于任务)时终止表单和然后加载一个表单,其中包含特定于用户选择的选项(在表单被杀死之前)。当然,VB.NET 和 MS 开发了一种新方法,可以从表单中删除所有内容,以便可以将这些信息保存在 RAM 内存中,然后在通过 Dim myform 将表单实例化为新表单时应用该信息(?)

为了澄清所问的问题,我将列举几个具体问题:

  1. 在处理具有数百个控件的众多表单时,可以最好地实现哪个特定的 Visual Studio (VB.NET 2012) 工具以最大限度地减少内存消耗。可能给出代码示例或指针。

  2. Visual Studio (VB.NET 2012) 中存在什么特定机制来通过例如流将控制数据序列化到注册表或磁盘以在选择“应用”按钮后保存数据,以便特定的 GUI 可以进行垃圾收集(“ GC”)。当再次需要控件时,获取上次保存的数据并填充控件。

  3. 已被证明是 Visual Studio (VB.NET 2012) 中最有效(内存效率)的方法,可最大限度地减少 GUI 消耗的内存泄漏。

似乎有一些信息指向使用 UserControls 和 XMLSerialize,但是,关于显式执行此操作所需的工作流的信息很少。

4

1 回答 1

1

如果您需要根据上下文动态显示不同的选项集,那么我建议UserControl为每个上下文单独制作一个。然后,根据上下文,您可以将适当的用户控件添加到弹出窗口中。就数据而言,我强烈建议您将数据模型与 UI 分开。您应该以某种方式对代码进行分层,以便能够在内存中保留数据的副本,而不必在内存中保留 UI 的副本。换句话说,您应该能够加载和卸载许多表单实例,这些实例都针对内存中的相同数据副本进行操作。当你加载一个表单或用户控件时,你应该简单地给它一个对它应该显示/维护的适用数据对象的引用。

于 2013-01-25T17:38:38.797 回答