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_Tabs_.net 3.5_Control Array - Fatal编程技术网

Vb.net 动态创建和删除控件

Vb.net 动态创建和删除控件,vb.net,tabs,.net-3.5,control-array,Vb.net,Tabs,.net 3.5,Control Array,我有一个多年前用VB6编写的程序,效果很好。但是,我需要将所有应用程序移动到.NET。我在这方面还是个新手,编程不是我的主要工作。我是一名空中交通管制员:我已经进行了广泛的搜索,但似乎没有任何内容涵盖我需要的所有要点。如果我错过了什么,我向你道歉。我可以处理所有操作数据的编码,动态创建和删除控件让我感到困惑 该程序全天候运行。它有一个带有单个默认选项卡页的选项卡控件。在.NET中,每个页面都有许多控件,这些控件包括文本框、标签、按钮和datagridview,每个控件可能有两个。该程序每隔60秒

我有一个多年前用VB6编写的程序,效果很好。但是,我需要将所有应用程序移动到.NET。我在这方面还是个新手,编程不是我的主要工作。我是一名空中交通管制员:我已经进行了广泛的搜索,但似乎没有任何内容涵盖我需要的所有要点。如果我错过了什么,我向你道歉。我可以处理所有操作数据的编码,动态创建和删除控件让我感到困惑

该程序全天候运行。它有一个带有单个默认选项卡页的选项卡控件。在.NET中,每个页面都有许多控件,这些控件包括文本框、标签、按钮和datagridview,每个控件可能有两个。该程序每隔60秒读取一个数据库,查找特定条目。找到该条目后,它会检查是否有该条目的选项卡页。如果存在,则数据将添加到现有选项卡页(如果该页不存在)

如果条目不存在,则使用原始选项卡页中的所有控件构建新选项卡页,其位置相同且外观相同,并且必须是用户和程序可访问的。用户通过添加或编辑数据字段与每个选项卡进行交互,并可以声明选项卡页面已从进一步的数据输入中关闭

最后,在一天结束时,通常在当地时间凌晨1点左右,清除除原始标签外的所有标签,以重新开始一天。我也在数据库上运行了一个存档,但我已经了解了很多

我的VB6应用程序的主要变化是失去了控制阵列。我已经编写了一些其他的应用程序,它们在启动时动态地构建控件,但是一旦程序加载,它们就是静态的。创建和删除所有这些控件时,我不知道它们在创建时将被命名,这是很困难的。每个新选项卡的常量是事件名称,其格式为3-6个字符的位置名称和六位数的日期,并在末尾添加冒号和序列号。这是因为活动地点在一天中可能有多个活动


如果有人需要关于我跟踪的内容的更具体的信息,我很乐意扩展。现在只是尽量简短。为了保留一些在.NET中被贬低的功能,我坚持使用3.5框架。

Proputinix提出了一个我没有考虑过的完美解决方案,它比我正在做的要实际得多

与其创建和销毁所有这些控件,不如使用带有网格的主窗体来显示每个事件。网格行可以着色以显示活动、关闭和需要注意的状态。双击一行将打开第二个窗体,其中包含与该特定事件交互所需的控件。DGV控件可以进行数据绑定,从而简化了字段的编辑

我已经用这个方法做了一些快速的实验,它可以做我需要的一切,而不会让我头疼


谢谢你的建议。所有想法都受到赞赏

反复创建和销毁控件是一个糟糕的设计。应该发生的是,控件应该被数据绑定到数据上,并在数据更改时进行更新,以使问题尽可能简短……为什么要为每个记录创建一个选项卡页?用户如何一次查看?取而代之的是考虑一个主细节模型,在这个模型中,用户选择记录/项到VisualFayTime:我同意,但是对于这个应用程序,它需要不断地运行,每个事件在一个单独的页面上。选项卡页面标签将指示需要用户注意的事件。有时会有十几个或更多的事件,必须独立跟踪。如果不动态构建控件,我想不出任何方法来实现它。我的原始版本要求为每个事件手动启动应用程序。这也是因为笨拙,而且还需要用户操作才能开始跟踪。有这么多要报道