我需要阅读form1中存在的文本框的内容。到目前为止,我还没有遇到任何错误问题,我创建了一个功能完美的函数。现在的问题是该函数太大了,无法保存在form1中,因此我创建了一个类,并将其导入了form1中。此类包含先前在form1中包含的函数,现在编译器向我显示以下消息:
“对非共享成员的访问需要对象引用”
可能是因为他无法读取form1中的对象。因此,我想知道如何访问此资源,我试图这样导入form1类:
Imports App.Form1
班级职能
public function Export()
oSheet.Cells(2, 2).value = Oggettivo_1_1.Value 'oggettivo_1_1_.value is an object of form1
end function
但是我总是遇到同样的错误,有人可以帮助我吗?
Imports
通常用于使Types
NameSpace中的类(如类)可用。它没有提供对象引用,这是您收到的错误消息的关键部分。由于我们不知道该类的创建方式或创建位置,因此通常采用以下方法:
Public CLass Form1
Private myClass As Class1 ' whatever you named it
Sub Form_Load....
myClass = New Class1(me)
...
End Sub
由于您所描述的内容表明该类或多或少是该表单的帮助者,因此该类需要对该表单的引用,并且没有理由没有该类。因此,我们使用构造函数传递表单引用:
Public Class1
Private myFrm As Form1
Public Sub New(frm As Form1)
myFrm = frm
End Sub
public function Export()
myFrm.oSheet.Cells(2, 2).value = ...
end function
现在,您的班级可以使用本地表单引用来引用表单了。由于我们不知道您的应用程序是如何构造的,因此这允许表单引用类中的方法,而类则引用表单中的事物。
在某些时候,如果/当您的应用成为类驱动或面向类时,您将想做一些不同的事情。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句