Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 项目设计,多种形式,多种控制_Vb.net_Winforms_Oop - Fatal编程技术网

Vb.net 项目设计,多种形式,多种控制

Vb.net 项目设计,多种形式,多种控制,vb.net,winforms,oop,Vb.net,Winforms,Oop,我正在实施一个有很多表单和控件的项目。如果我选择动态创建popupforms以供用户指定选项,那么获取要保存在列表或其他内容中的控件细节的最佳方法是什么,在用户指定特定选项(用于任务)后终止该表单,然后加载一个包含用户所选选项的表单(在终止该表单之前)。当然,VB.NET和MS开发了一种新方法,可以从表单中剥离所有内容,这样这些信息就可以保存在RAM内存中,然后在通过Dim myform将表单实例化为新表单时应用这些信息(?) 为了澄清问题,我将列举几个具体问题: 在处理每个窗体上有数百个控件的

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

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

  • 在处理每个窗体上有数百个控件的大量窗体时,哪种特定的Visual Studio(VB.NET 2012)工具可以最好地实现以最小化内存消耗。可能给出代码示例或指针

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

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


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

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

    强烈建议在此列出所有要点;我们制作了一个有900个独特面板的应用程序,这些面板出现在屏幕的大部分工作区;工作区位于一条主通道内,带有左导航、菜单和上/下按钮。我们通过将控件子类化并将其用于表单(usercontrol/panels)来分离逻辑,子类实现了一个“getxml”和“setxml”函数,该函数将获取并设置它们的值为文本。主usercontrol继承了一个循环通过的控件,调用这些。业务逻辑读取/设置xml。从那时起,谷歌MVP。很难,但它将开发时间缩短了一半。我很高兴您提供了更多信息,但这仍然不是一个真正的问题。