【问题标题】:What does the ".1." at the end of a bstrProgId as string mean/do?“.1.”是什么意思?在 bstrProgId 的末尾作为字符串的意思/做?
【发布时间】:2017-05-16 18:39:38
【问题描述】:

当动态创建用户表单布局时,在添加控件时,我发现语法要求 bstrProgId 末尾的“.1”作为以下代码中的字符串:

For loopthroughsteps = 0 To 0
    For foodgroup_id = 0 To 6
        'For vit = 2 To 18
        For vit = 2 To 3
            Dim listbox As Object
            Set listbox = UserForm3.Controls.Add("Forms.Listbox.1", foodgroup_id & "-" & vit & "-" & loopthroughsteps, True)                
            With listbox
                .Left = 35 * (vit - 1) + 205 * (vit - 2)
                .Top = 25 + (foodgroup_id) * 50
                .Height = 50
                .Width = 205
            End With
        Next vit
    Next foodgroup_id
Next loopthroughsteps

Controls.Add("Forms.Listbox 之后的“.1”是什么意思?

我在文档中找不到它,但我很好奇;

  • 它是控件表单的索引,但为什么它(总是)为 1? 为什么它会是字符串中的数字?

  • 或者它是某种迹象,如果是的话是为了什么?

【问题讨论】:

    标签: excel vba syntax controls


    【解决方案1】:

    除了其他好的答案之外,这里还有一些文档(评论太多了)...

    如果您使用Regedit.exe 特别是 CLASSES_ROOT\CLSID 配置单元浏览注册表,那么您将看到类似这样的内容

    [HKEY_CLASSES_ROOT\CLSID\{884e2013-217d-11da-b2a4-000e7bbb2b09}]
    
    
    [HKEY_CLASSES_ROOT\CLSID\{884e2013-217d-11da-b2a4-000e7bbb2b09}\ProgID]
             @="X509Enrollment.CAlternativeName.1"
    
    [HKEY_CLASSES_ROOT\CLSID\{884e2013-217d-11da-b2a4-000e7bbb2b09}\VersionIndependentProgID]
             @="X509Enrollment.CAlternativeName"
    

    因此可以看到ProgIDVersionIndependentProgID。有了这个可以控制想要实例化的控件的版本。

    这是一个 Microsoft 文档链接 VersionIndependentProgID

    【讨论】:

      【解决方案2】:
      Add(ProgID, Name, Visible)
      

      第一个参数progID 只是一个字符串,COM 工厂解析并决定创建哪个对象。它没有被指定为确切的类的编程名称(即typename),而是对象工厂映射到给定类的字符串。

      为什么是"Forms.Listbox.1" 而不是Forms.Listbox? “.1”背后的原因与实现有关,很可能是由于开发和维护 VBA 的开发团队内部的“版本控制”。开发人员只需使用UserForm.Add 方法中记录的指定字符串“progID”。

      【讨论】:

        猜你喜欢
        • 2012-05-07
        • 1970-01-01
        • 1970-01-01
        • 2018-08-28
        • 2012-10-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多