求助各位!"对非共享成员的引用要求对象引用"问题!
Public Class frmCKLXsc
Private Sub cklxsc_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Try
Dim number As Integer = frmCKLX.ListView1.Items.IndexOf(frmCKLX.ListView1.FocusedItem)
If number = -1 Then
MsgBox("请选择要删除的内容")
Me.Close()
Else
End If
Catch ex As Exception
End Try
End Sub
这是部分代码 这些在我自己的项目里运行没有问题 但是我传到团队项目以后 就提示"frmCKLX.ListView1"错误 说"对非共享成员的引用要求对象引用"
其他的窗口也有一样的问题
我才开始学习 请问一下这样的问题要怎么解决 谢谢!
[解决办法]
你这个代码的会引发“对非共享成员的引用要求对象引用”异常。。。。。。。。麽
这个异常一般会在这种情况下抛出:
Public Class Form1
Shared Sub a()
abc.b = 0
End Sub
End Class
Public Class abc
Public b As Integer
End Class
就是说,你在一个被声明成shared的过程中,使用了一个未被声明为shared的引用类型。
你上面的修改方法肯定是不奏效的,你要传递frmCKLX的引用过来,而不是new一个,new会出来一个新的,而不是原来的,所以貌似错误没有了,但实际原因是你在自己这里生命了一个新的,引用的已经不是原来那个了。
因为你的代码贴的不全,所以没法知道问题出在哪里,你可以查找全部shared的函数,来寻找问题。其实为了不出现类似问题,你们一起编码之前要先约定好,哪部分用shared因为只有一个实例就够了。很多奇怪的问题都是因为编码不规范,这个引用那个、那个引用这个而不是事先封装好。