将你作为参数传递给vb6下的CallbyName funktion有什么不对?

时间:2014-02-06 15:51:29

标签: vb6 callbyname

我想传递sourceform,我从中使用CallByName函数。不知何故,它在我发布它的方式不起作用。

Private Sub Command1_Click()
  'CallByName Form1, "TestFkt", VbMethod, Nothing, Command1   '<--- works
  CallByName Form1, "TestFkt", VbMethod, Me, Command1         '<--- Problem
End Sub

Public Function TestFkt(ParamArray myParams())
  Dim oForm As Object
  Set oForm = myParams(0)

  ' ...
End Function

vb6报告的错误是运行时错误450:“Falsche Anzahl an ArgumentenoderungültigeZuweisungzu einer Eigenschaft”。我认为第一个原因不是问题,因为上面的注释行有效。似乎更多的是,问题与关键字me有关。

有人有点想法吗?

1 个答案:

答案 0 :(得分:3)

它不是CallByName

TestFkt Form1, Me

也无效,因为在使用Me时无法通过ParamArray。这是Me的特殊情况,这是一种特殊情况。

解决方法:

Dim fMe As VB.Form: Set fMe = Me
CallByName Form1, "TestFkt", VbMethod, fMe, Command1