1

所以我正在编写一个脚本来快速修改一个带有 COM 控件的 VB6 应用程序的接口。(在 C# .net 中创建)。大部分都可以正常工作,但有些面板给我带来了很多麻烦。

基本上,我打开 .frm 文件并阅读它,当我找到一些控件时,我会修改它们的值或插入新的东西。当我找到一个面板时,我会在它周围创建一个不同的面板,这样看起来会更好。我会Top = 2340在我的新元素的文件中说。如果我在记事本中打开 .frm ,我可以清楚地看到 的值为Topat 2340。打开 VB6 后,面板的最高值为Top = 8190. 它也修改了左值,但没有别的。如果我保存并退出 vb6,然后在记事本中重新打开 .frm,该Top值将保存在8190.

为什么 VB6 使用的值与 .frm 文件中的值不同?它是否试图避免元素堆叠在一起?在读取文件和打开文件之间发生了什么,这会强制Top属性的值不同?

4

1 回答 1

0

只是一个理论,但我认为问题在于该ScaleMode属性设置不正确。默认情况下,除非容器窗口具有该属性,否则它将设置为 Twips。因此,在某些容器下可能有效的内容在其他容器中无效。

例如,MDIForm 容器强制 Twips,甚至可以根据对齐重新定位对象。

如果这是表单本身,我认为它不值得一提,请确保StartUpPosition正确设置为 0(手动)。

于 2013-08-05T15:33:49.357 回答