4

由于未知的原因,VB6 编译器经常喜欢重新排序 .vbp 文件的内容和 .frm 文件顶部的控件描述符块(描述窗体上控件属性的代码。您在IDE,但您确实在文本编辑器中看到,并且在与版本控制中的先前版本进行比较时看到。)。在比较文件的修订版时,这非常烦人并且非常分散注意力。

有没有办法防止这种情况?

4

3 回答 3

6

我认为您对此无能为力。我注意到了同样的问题:IDE 似乎没有明显的原因喜欢重新排列事物。我注意到的一些事情:

  • 当您使用 SSTab 控件时,VB 喜欢重新排列选项卡的属性,尤其是 TabEnabled 属性。

  • 对于项目文件,它会随机重新排列文件出现的顺序,我想我记得看到类似文件类型并不总是组合在一起并最终与项目属性混合在一起的情况。您对此没有太多控制权,除非您通过某种类型的清理程序运行所有 VBP,这些清理程序将文件组合在一起(一组中的表单,另一组中的模块等)并按字母顺序或其他方式对它们进行排序,以便它们保持一致。处理此问题的一种可能方法是编写一个 IDE 插件,每次您将更改保存到项目文件时,它都会自动执行此操作,或者提出一些批处理过程,它只会递归您的源目录并清理所有 VBP一口气。

  • IDE 似乎随机改变事物的大小写;这似乎经常发生在项目引用中。有时以小写输出,有时以大写输出。当您在 SourceSafe 中比较文件时,您可以通过选择“忽略大小写”来解决此问题。

  • 控制坐标,例如 Top、Left、Height 和 Width,在同一表单的两个修订版之间可能不同。这是由于不同的开发人员在处理同一个表单时使用不同的屏幕分辨率和/或不同的屏幕 DPI 设置。如果您还没有这样做,我强烈建议您让每个人都使用相同的分辨率和相同的 DPI 设置进行开发。不同的值是由在不同分辨率/DPI 设置下的逻辑屏幕坐标转换为缇(VB 用于布局表单的默认坐标空间)时发生的舍入误差引起的。此外,当我谈到这个话题时,请确保每个人都将其显示设置为 96dpi,因为如果您以 120dpi 开发 VB 表单,它们很有可能无法在设置为 96dpi 的显示上正确显示。

  • 可能还有其他事情我现在不记得了……

至于在表单文件中更改控件的顺序,这是正常的,如果碰巧从表单的一个版本更改为下一个版本,您通常不想尝试手动重新排列控件的顺序。控件出现在表单文件中的顺序决定了它们在表单上的 Z 顺序。如果 .frm 文件中控件的顺序发生更改,这将更改它们在表单上的相对 Z 顺序,这可能会导致表单显示方式出现意外结果。

于 2008-10-04T04:08:47.717 回答
1

当您不编辑它(即添加模块等)时,您可以将 .vbp 文件设为只读吗?

至于表单文件......我想不出任何好的方法来让 VB 不对它们重新排序。但我不得不说我以前从未遇到过这种情况。你确定没有其他事情发生吗?

完全有可能我过去从来没有关注过这个,所以我不是说你错了,只是提供我自己的观察。

于 2008-10-03T16:04:18.287 回答
0

我注意到重新打开表单并再次保存通常会恢复一致的顺序。

于 2009-10-16T12:13:56.170 回答