3

我的项目在 SSTab(4 个选项卡)中可能有 130 个控件(所有标签、文本框等的总和)。该项目加载正常,运行良好,我在任何时候都看不到任何错误或警告,但是当我保存带有 SStab 的表单时,SStab 数据没有保存(它完全消失了)。通常 .frm 文件的相关部分如下所示:

   开始 TabDlg.SSTab SSTab1
     身高 = 8895
     [所有控件的 1550 多行代码]
     宽度 = 540
   结尾
   开始 VB.Menu FileMenu

但最近它被裁剪为:

   开始 TabDlg.SSTab SSTab1
   开始 VB.Menu FileMenu

这非常令人沮丧!在我的 VB IDE 中,框架、sstab 和所有控件都在那里,可编辑,运行/编译正常,在任何时候都没有错误消息,但是当你保存文件时,1550 行宝贵的 sstab 数据就消失了 - 再次,没有警告或错误消息。因此,如果您退出并重新启动 IDE,则会收到表单加载错误,因为现在丢失了 60% 的代码。日志文件指向它发现的第一个错误(在这种情况下是一个没有 End 的 Begin TabDlg)——其中没有其他信息。(日志文件是在删除和保存代码后生成的,所以它没有帮助是有道理的。)

当我第一次发布这个问题时,我认为它与控件的数量有关,因为它出现在我添加控件之后,并且在我最初的几次测试中,当该控件(或其他控件)被删除时似乎消失了。现在我似乎在任何情况下都无法保存该表单,即使我删除了许多控件(使控件的数量远低于上次稳定时的数量)。

我还尝试删除 SStab 并将所有控件移动到 4 个不同的帧。我在 IDE 中成功地做到了这一点,但是当我保存时,大量数据(从滑块控件开始)丢失了。所以我不知道发生了什么。

该问题可以在两台不同的 PC 上重现,因此它似乎不是硬件/损坏的软件 VB 安装问题。

有没有其他人遇到过这样的事情?

4

6 回答 6

3

为每个选项卡创建一个 UserControl。这使得编辑更容易。它还允许您很好地模块化代码,因此每个选项卡都存在于自己的文件中,并且如果您愿意,它还允许您在其他地方重用选项卡。

于 2009-04-03T21:21:58.200 回答
2

听起来很可怕,从来没有听说过这样的事情。

当您在表单被损坏之前将表单加载到 IDE 时,大概您没有从 VB6 获得错误日志文件?日志文件与表单文件具有相同的文件名,但文件扩展名为 .log。例如,如果加载 Myform.frm 时发生错误,Visual Basic 将创建一个名为 Myform.log 的日志文件。您可能会看到的错误消息记录在手册中。

查看 Windows 事件日志,看看它是否记录了针对 VB6 IDE 的任何有趣问题?

你在使用任何奇怪的控件吗?也许其中之一以某种方式破坏了 FRM 或 FRX。FRM 文件只是您显然知道的文本,格式记录在 VB6 手册中。您能在文本编辑器中看到 FRM 中的任何损坏吗?如果您删除 FRX 中定义的任何属性,它是否仍然会失败。

我想我会尝试创建一个新项目和一个新表单,然后使用 IDE 将所有控件定义复制并粘贴到其中 - 无需代码。玩一下新表格,看看是否有同样的问题。也许您可以以这种方式重新创建表单而不会出现问题。如果新表单确实存在问题,请执行相同的操作,但只使用一半的控件。也许你可以通过“二分查找”找到问题控制。

于 2009-04-03T19:52:41.537 回答
2

当 .FRM 可写但 .FRX 是只读时,我在尝试保存表单时遇到同样的问题

于 2009-10-16T01:12:06.417 回答
1

所以 SAVE 功能不起作用。

我怀疑您放置在标签条上的组件之一是罪魁祸首。

所以 ..

1) 盘点您放置在表单上的每一种组件

2)消除一个(种类),保存

3)它保存了吗?

-> 是 = 那是有问题的控制

-> 否 = 返回第 2 步,但选择另一种

当然,在第 2 步中删除某种特定类型的所有控件(例如,所有标签或所有文本框等)很重要。

然而,我从未听说过这种情况。

于 2009-04-03T20:26:43.263 回答
1

不确定这是否是问题,但在 VB6 表单上,有 255 个(或者是 256 个)命名控件的限制。也许你遇到了这个?

绕过该限制的一种方法是使用控制数组。例如,如果您有 10 个标签,而不是 label1、label2、label3 等,您可以执行 label(0) 到 label(9),并且只使用一个命名控件。

关于 SSTAB 值得一提的另一件事是它显示/隐藏控件的方式。虽然看起来控件位于单独的选项卡上,但实际发生的是控件正在向左移动(因此不在视图中)。也许有这么多组件,当 SSTAB 试图在设计视图中呈现控件时,它在 IDE 中对此感到窒息?

同样,不确定这是否是问题,但我知道这两个花絮相对不为人知。

于 2009-04-03T14:23:12.247 回答
1

你不是一个人!我已经看到了这个问题。. .事实上,我现在正在处理它,这就是把我带到这个网站的原因。

自 94 年(VB3)以来我一直在使用 VB,大约 5 或 6 年前我在使用 VB6 时第一次看到这个问题。我的解决方案与您从上面回复的好人那里收到的一些建议没有什么不同:丢弃现有文件并在新文件中重建表单。我这样做了,从那以后受影响的表格一直有效。

我当前的问题以另一种更新的形式出现,替换/重建选项(大约一个月前执行)只工作了大约三周。现在问题又回来了,文件的每次新迭代都会很快损坏。根据上面关于允许控件总数的回复,我正在研究我有多少控件。. .而且,碰巧的是,我正在将主要的按钮和菜单整合到控制阵列中,仅仅是因为它会简化它们的管理。

我还可以确认您对将项目移至第二台 PC 的观察。. . 我也这样做了,问题仍然存在。此外,我可以补充一点,我已将项目从一个共享存储系统移动到另一个共享存储系统,但无济于事。(原来的存储位置在安装到 Win-tel 系统的驱动器上,而新位置在基于 UNIX 的 NAS 上!)

只是再次重建文件并检查:Controls.Count = 62,所以我没有接近前面提到的 255 控制限制。这确实很奇怪!(更不用说令人讨厌了!)

于 2009-08-03T16:01:44.157 回答