-1

我遇到了问题,因为我将代码从vb6to更改为.net,我似乎无法解决我遇到的这个问题。请协助。

我收到的错误消息:

Error 5 Reference to a non-shared member requires an object reference.

这在代码中的很多地方都发生了。这是我的代码。问题是它说 FrmInvItem.Inv。

Option Strict Off Option Explicit On Public Class ClsInv

Public Function RunProcess(ByVal ConnectStr As String, ByRef Parstr As String) As Integer
    Dim frmInvIt As frmInvItem
    RunProcess = frmInvItem.Inv(ConnectStr, Parstr)
    frmInvIt.Close()
End Function
4

2 回答 2

1

我假设Inv不是共享的,但是您在没有它所在的类的实例的情况下调用它。所以你要么必须做到,shared要么创建一个实例frmInvItem

Dim frmInvIt As New frmInvItem() ' create instance
RunProcess = frmInvIt.Inv(ConnectStr, Parstr) ' use it on this instance

frmInvItem是类,只有当方法是 . 时,才能通过类名调用方法shared

Shared过程是与类的特定实例无关的类方法。例如,类中Cos定义的方法Math是共享方法。您可以将共享过程作为对象的方法或直接从类中调用。

于 2013-05-14T08:26:12.010 回答
0

您正在运行一个名为 Inv 的方法frmInvIt而不创建实例。

您应该创建一个实例来运行您的方法:

http://msdn.microsoft.com/en-us/library/77s47661.aspx

于 2013-05-14T08:27:04.927 回答