CallByName 函数      执行一个对象的方法,或者设置或返回一个对象的属性。语法CallByName(object, procedurename, calltype,[arguments()])CallByName 函数的语法有以下部分:部分 描述 
object 必需的;变体型(对象)。函数将要执行的对象的名称。 
procedurename 必需的;变体型(字符串)。一个包含该对象的属性名称或者方法名称的字符串表达式。 
calltype 必需的;常数。一个 vbCallType 类型的常数,代表正在被调用的过程的类型。 
arguments() 可选的:变体型(数组)。 
说明CallByName 函数用于获取或者设置一个属性,或者在运行时使用一个字符串名称来调用一个方法。在下面的例子中,第一行使用 CallByName 来设置一个文本框的 MousePointer 属性,第二行得到 MousePointer 属性的值,第三行调用 Move 方法来移动文本框:CallByName Text1, "MousePointer", vbLet, vbCrosshair
Result = CallByName (Text1, "MousePointer", vbGet)
CallByName Text1, "Move", vbMethod, 100, 100

解决方案 »

  1.   

    zyl910(910:分儿,我来了!) :看样子你的方法可以,明天我试试,现在手头没有机器!
    顺便问一下,这个函数是vb 本身就有的吗?
      

  2.   

    Dim mForm As Form
        Set mForm = Forms.Add(strform)
        mForm.Show
      

  3.   

    CallByName行吗?第一个参数必须要Object的!
      

  4.   


    up 
    说句老实话,我还不知道callbyname这个东东拿!学习!
      

  5.   

    zyl910(910:分儿,我来了!) :我试过了,你的方法不可行啊!
      

  6.   

    zyl910(910:分儿,我来了!) :能举个例子吗?
      

  7.   

    fuxc(Michael) :也许你的方法可行,我明天上班才能试,先谢谢!
      

  8.   

    '------------把以下代码放在CShowByName.cls类文件中---------------
    Private m_objs As New CollectionPublic Function ShowByName(ByVal frmName As String) As Boolean
        Dim i As Long
        ShowByName = False
        For i = 1 To m_objs.Count
            If m_objs(i).Name = frmName Then
                ShowByName = True
                m_objs(i).Show
                Exit For
            End If
        Next
    End FunctionPublic Function AddForms(ByVal frmObj As Form) As Boolean
    m_objs.Add frmObj
    End Function'--------------使用方法-------------------------
    Sub main()
        Dim c As New CShowByName
        ’程序一开始把所有的窗体都加到c这个对象中
        c.AddForms Form1
        c.AddForms Form2
        c.AddForms Form3    dim strFrmName as string 
        strFrmName = "Form2"     ‘假设需要调用的窗口名称为Form2    '通过名称来调用,显示Form2,相当于调用Form2.Show
        c.ShowByName strFrmName End Sub
      

  9.   

    感谢 fuxc(Michael) ,你的方法很好!
    jyu1221(天同) ,抱歉,你的方法也许可以,但是好象不是最好的方案,而且我现在没有时间去试!
    也感谢其他人的帮助!
      

  10.   

    同意fuxc(Michael) ,callbyname不行.