vb6从类模块获取数据

vb6从类模块获取数据,vb6,Vb6,我是vb6新手,不擅长搜索内容。这个代码有什么问题?我创建了form1并插入了类模块 Private sub form_load() call Jo.Display(txtdate.text) end sub 五月级模块ClsJo public function Display(txtdate as string) txtdate = "123abc" end function Display函数有一个参数txtdate,它是“通过引用”传递的,这意味着函数可以更改其值。您正在向该函数传

我是vb6新手,不擅长搜索内容。这个代码有什么问题?我创建了form1并插入了类模块

Private sub form_load()
 call Jo.Display(txtdate.text)
end sub
五月级模块ClsJo

public function Display(txtdate as string)
 txtdate = "123abc"
end function

Display函数有一个参数txtdate,它是“通过引用”传递的,这意味着函数可以更改其值。您正在向该函数传递一个值,因此我假设您希望txtdate.Text属性在调用后包含值“123abc”

但是,这不会像您编写的那样起作用。 Text是一个属性,属性不是真正的变量,它们是一种函数。您可以使用“let”运算符设置属性值,使用“get”运算符获取属性值,但您无法直接访问存储该值的实际变量。 因此,当传递给函数时,VB6将获取属性的值,从中创建一个临时变量,并将该临时变量作为参数传递给函数。此临时变量中的更改永远不会返回到txtdate.Text属性

要获得我认为您想要的功能,您可以执行以下任一操作:

A.自己创建一个变量,将其传递给函数,并将txtDate.Text属性设置为返回值。这将是我推荐的方法,因为函数将有更干净的参数。像这样:

    Private Sub Form_Load()
      Dim myText As String
      myText = txtDate.Text
      call Jo.Display(myText)
      txtDate.Text = myText
   End Sub
B:将txtDate作为参数传递给函数,而不是属性,如下所示:

Public Sub Display(ByRef dateControl As Object)
   dateControl.Text = "123abc"
End Function

Private Sub Form_Load()
   Jo.Display txtDate
End Sub

你必须告诉我们代码应该做什么,什么不起作用。每次可能形成负载时,我喜欢从ClsJo获得“123abc”。tnx