0

我有一个多年前用 VB6 编写的程序,运行良好。但是,我需要将所有应用程序迁移到 .NET。我在这方面还很陌生,编程不是我的主要工作。我是一名空中交通管制员 :) 我进行了广泛的搜索,但似乎没有什么能涵盖我需要的所有要点。如果我错过了什么,我深表歉意。我可以处理所有用于操作数据的编码,让我感到困惑的是动态创建和删除控件。

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

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

最后,在一天结束时(通常是当地时间凌晨 1 点左右),除原始标签外的所有标签都将被清除,以重新开始新的一天。我还在数据库上运行了一个存档,但我已经弄清楚了。

我的 VB6 应用程序的主要变化是控制数组的丢失。我编写了一些其他应用程序,它们在启动时动态构建控件,但一旦加载程序,它们就是静态的。当我不确定它们在创建时将被命名为什么时,创建和删除所有这些控件是很困难的。每个新选项卡的常量是事件名称,其格式为 3-6 个字符的位置名称和 6 位日期,最后添加一个冒号和序号。这是因为活动地点在白天可能有不止一个活动。

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

4

1 回答 1

0

Plutonix 提出了一个我没有考虑过的完美解决方案,而且比我正在做的要实用得多。

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

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

感谢所有的建议。所有想法都表示赞赏。:)

于 2014-11-25T19:00:03.123 回答