从文本编辑器修改VB6控件属性会导致意外行为

时间:2013-07-25 18:42:07

标签: vb6

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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