我有一个 VB 6 插件,它将所有项目添加到一个项目组中,遍历这些项目的每个组件,如果找到一个表单或用户控件,则更改其属性。
属性由用户定义。如果用户想要更改所有表单或用户控件的高度,则代码片段如下
Private Sub Update_ButtonClick()
'..declaring all the variables here
' VBInstance is initialized to VBIDE.VBE when the add-in is loaded
For Index = 1 To projCount
compoCount = VBInstance.VBProjects(Index).VBComponents.Count
For jIndex = 1 To compoCount
csFileName = VBInstance.VBProjects(Index).VBComponents(jIndex).name
componentType = VBInstance.VBProjects(Index).VBComponents(jIndex).Type
If componentType = VBIDE.vbext_ct_VBForm Or componentType = VBIDE.vbext_ct_UserControl Then '.frm or .ctl
VBInstance.VBProjects(Index).VBComponents(jIndex).Properties(propChange).Value = propvalue 'changing the property
VBInstance.VBProjects(Index).VBComponents(jIndex).SaveAs csFileName 'Saving the file
End If
Next jIndex
Next Index
End Sub
每当我将属性名称命名为Font
时,我都会收到错误消息
运行时错误“425”无效对象使用
我已经PropertyBag.WriteProperty
从http://visualbasic.freetutes.com/learn-vb6-advanced/lesson13/p20.html尝试过,但它不符合我的目的。
有没有办法设置Font
控件或表单的属性?
当我在记事本中打开 ctl 或表单时,我无法在其中找到该Font
属性,因此我无法在此处使用文本替换。
任何人都可以帮忙吗?
更新代码:
Private Sub Update_ButtonClick()
Dim fobject As New StdFont
fobject.Name = "Arial"
Set propvalue = fobject
For Index = 1 To projCount
compoCount = VBInstance.VBProjects(Index).VBComponents.Count
For jIndex = 1 To compoCount
csFileName = VBInstance.VBProjects(Index).VBComponents(jIndex).Name
componentType = VBInstance.VBProjects(Index).VBComponents(jIndex).Type
If componentType = 5 Or componentType = 8 Then
VBInstance.VBProjects(Index).VBComponents(jIndex).Properties("Font").Value= propvalue
VBInstance.VBProjects(Index).VBComponents(jIndex).SaveAs csFileName
End If
Next jIndex
Next Index
End Sub
我得到的错误是
Run-time error '425':
Invalid object use