我是 vb6 的新手,不擅长搜索东西。这段代码有什么问题?我创建了 form1 并插入了类模块。
Private sub form_load()
call Jo.Display(txtdate.text)
end sub
五月类模块ClsJo
public function Display(txtdate as string)
txtdate = "123abc"
end function
我是 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”。
但是,这不会像您编写的那样工作。txtdate.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