首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

各位!"对非共享成员的引用要求对象引用"有关问题

2013-01-18 
求助各位!对非共享成员的引用要求对象引用问题!Public Class frmCKLXscPrivate Sub cklxsc_Load(ByVal s

求助各位!"对非共享成员的引用要求对象引用"问题!
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因为只有一个实例就够了。很多奇怪的问题都是因为编码不规范,这个引用那个、那个引用这个而不是事先封装好。

热点排行