Vb6 在VB 6(.ctl文件)中提取控件的属性

Vb6 在VB 6(.ctl文件)中提取控件的属性,vb6,controls,Vb6,Controls,我有一个VB6控制文件(example.ctl),我的要求是在运行时更改此文件的属性…基本上是一些批量操作…(更改所有ctl文件的属性) 此ctl文件是项目的一部分 例如,是否可以更改属性 height=100 宽度=200 背景=白色 font=calibri 通过代码,例如使用批处理文件或c#或vb…是否已有可用的工具???ctl文件仅存在于您的开发环境中。一旦编译到应用程序中,它们将成为编译输出的一部分,您将只能修改根据控制文件中定义的规则实例化的对象的属性 如果每个控件都将高度、宽度和背

我有一个VB6控制文件(example.ctl),我的要求是在运行时更改此文件的属性…基本上是一些批量操作…(更改所有ctl文件的属性)

此ctl文件是项目的一部分

例如,是否可以更改属性
height=100
宽度=200
背景=白色
font=calibri


通过代码,例如使用批处理文件或c#或vb…是否已有可用的工具???

ctl文件仅存在于您的开发环境中。一旦编译到应用程序中,它们将成为编译输出的一部分,您将只能修改根据控制文件中定义的规则实例化的对象的属性


如果每个控件都将高度、宽度和背景字体作为属性公开,那么您将能够在运行时以您希望的方式操纵这些控件。如果您有一个希望以这种方式操作的控件对象列表,您可以创建它们的列表并对它们进行迭代。

ctl文件仅存在于您的开发环境中。一旦编译到应用程序中,它们将成为编译输出的一部分,您将只能修改根据控制文件中定义的规则实例化的对象的属性

如果每个控件都将高度、宽度和背景字体作为属性公开,那么您将能够在运行时以您希望的方式操纵这些控件。如果您有一个要以这种方式操作的控件对象列表,您可以创建一个控件对象列表并对其进行迭代。

我正在使用获取对VBIDE.VBE的引用。然后在即时窗口或公共函数中,所有加载项目中的所有模块都可以用代码进行操作

注册
GetVBERef.dll
,在VB6 IDE中加载
获取VBE引用
加载项,从zip打开
Project2.vbp
,并在即时窗口中键入:

For Each oCmp In VBERef.ActiveVBProject.VBComponents: ? oCmp.Name: Next
(您将获得
Module2
,这仅仅是因为
Project2
中没有更多内容)

您可以从项目中的
模块2
复制/粘贴代码,并添加对
Microsoft Visual Basic 6.0扩展性的引用。通过一点尝试和错误,您可以编写一个公共函数(例如,在同一个模块中),用于调整项目组中所有用户控件的大小或设置所有窗体的颜色、字体等。

我使用a来获取对VBIDE.VBE的引用。然后在即时窗口或公共函数中,所有加载项目中的所有模块都可以用代码进行操作

注册
GetVBERef.dll
,在VB6 IDE中加载
获取VBE引用
加载项,从zip打开
Project2.vbp
,并在即时窗口中键入:

For Each oCmp In VBERef.ActiveVBProject.VBComponents: ? oCmp.Name: Next
(您将获得
Module2
,这仅仅是因为
Project2
中没有更多内容)


您可以从项目中的
模块2
复制/粘贴代码,并添加对
Microsoft Visual Basic 6.0扩展性的引用。通过一点尝试和错误,您可以编写一个公共函数(例如在同一模块中),用于调整项目组中所有用户控件的大小或设置所有窗体的颜色、字体等。

人们仍然编写VB6吗?为什么?@lightness因为他们有数百万行VB6,而且没有明显的升级路线来升级到更现代的平台,这就是为什么@MarkJ:当互操作存在时,为什么要故意添加到这些行中?人们仍然编写VB6?为什么?@lightness因为他们有数百万行VB6,而且没有明显的升级路线来升级到更现代的平台,这就是为什么@MarkJ:当interop存在时,为什么要故意添加到这些行中?感谢Addin wqw示例,我正在寻找当前项目/模块中不应该出现的内容。第三方(最好是c#)应用程序,它将打开所有vb项目,获取控制文件(.ctl),然后处理它们的属性,然后关闭vb项目。。。我猜我需要在C#中重写GetVBRef.dll,然后将其包含在另一个可以在VB项目上工作的C#应用程序中。。。是否可以仅通过包含Microsoft Visual Basic 6.0扩展性来实现这一点?您不需要更改现有项目。只需创建一个项目组,其中包括您的项目和一个特殊的“仅设计时”项目(示例中为
Project2
),该项目实现
VBERef
和一个公共函数,该函数将处理项目中的用户控件。在设计时从即时窗口调用此函数。感谢示例Addin wqw,我正在寻找当前项目/模块中不应出现的内容。第三方(最好是c#)应用程序,它将打开所有vb项目,获取控制文件(.ctl),然后处理它们的属性,然后关闭vb项目。。。我猜我需要在C#中重写GetVBRef.dll,然后将其包含在另一个可以在VB项目上工作的C#应用程序中。。。是否可以仅通过包含Microsoft Visual Basic 6.0扩展性来实现这一点?您不需要更改现有项目。只需创建一个项目组,其中包括您的项目和一个特殊的“仅设计时”项目(示例中为
Project2
),该项目实现
VBERef
和一个公共函数,该函数将处理项目中的用户控件。在设计时从即时窗口调用此函数。