显示错误对象引用未设置为对象的实例。 [英] Show error object reference not set to an instance of an object.
本文介绍了显示错误对象引用未设置为对象的实例。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
Object reference not set to an instance of an object.
Capture — imgbb.com
[ ^ ]
我的尝试:
[^]
What I have tried:
Private Sub btnaddcat_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnaddcat.Click
Dim myCheckFont As New System.Drawing.Font("Wingdings", 12, FontStyle.Regular)
Dim myRegFont As New System.Drawing.Font("Arial", 12, FontStyle.Regular)
With objPurID_PR
ListView2.Items.Clear()
.purinvid = id
dt = .GetPurInvItemForPR()
For i As Integer = 0 To dt.Rows.Count - 1
Dim dr As DataRow = dt.Rows(i)
Dim listitem As New ListViewItem(dr("itemnm").ToString())
listitem.UseItemStyleForSubItems = False
listitem.SubItems.Add(Chr(168))
listitem.SubItems.Item(1).Font = myCheckFont
listitem.SubItems.Add(dr("PDQty").ToString())
listitem.SubItems.Add(dr("itemnm").ToString())
listitem.SubItems.Add(dr("itemnm").ToString())
ListView2.Items.Add(listitem)
Next
End With
End Sub
Private Structure MyCell
Dim Row As Integer
Dim Col As Integer
End Structure
Private bOWCheck() As Boolean
Private Sub ListView2_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ListView2.MouseUp
Dim cellLoc As MyCell
cellLoc = WhichCell(ListView2, e.X, e.Y)
Label4.Text = cellLoc.Row.ToString & " " & cellLoc.Col.ToString
If cellLoc.Col = 2 Then
If bOWCheck(cellLoc.Row) = True Then
Label5.BackColor = Color.AliceBlue
ListView2.Items(cellLoc.Row).SubItems(cellLoc.Col - 1).Text = Chr(168)
bOWCheck(cellLoc.Row) = False
Else
Label5.BackColor = Color.Coral
ListView2.Items(cellLoc.Row).SubItems(cellLoc.Col - 1).Text = Chr(258)
bOWCheck(cellLoc.Row) = True
End If
End If
End Sub
Private Function WhichCell(ByVal lvw As ListView, ByVal X As Integer, ByVal Y As Integer) As MyCell
Dim colstart As Integer = 0
Dim colend As Integer = 0
Dim xCol As Integer
For xCol = 0 To (ListView2.Columns.Count - 1)
colend = colend + ListView2.Columns(xCol).Width
If colstart <= X And X <= colend Then
WhichCell.Col = xCol + 1
Exit For
End If
colstart = colstart + ListView2.Columns(xCol).Width
Next
WhichCell.Row = ListView2.FocusedItem.Index
Return WhichCell
End Function
推荐答案
对象为空。这就是错误告诉你的。现在,你需要找出原因,然后修复它或处理它。
The object is null. That is what the error is telling you. Now, you need to figure out why and then fix it or handle it.
Private bOWCheck() As Boolean
你已经声明了一个布尔
值的数组,但是你所展示的代码中没有任何地方你实际上已经初始化它。因此,它的值是 Nothing
,并且尝试读取或写入它将产生 NullReferenceException
。
Visual Basic中的数组| Microsoft Docs [ ^ ]
注意:你可以通过简单的调试代码!
You've declared an array of Boolean
values, but nowhere in the code you've shown have you actually initialized it. Therefore, its value is Nothing
, and attempting to read from or write to it will produce a NullReferenceException
.
Arrays in Visual Basic | Microsoft Docs[^]
NB: You could have found this out for yourself much faster by simply debugging your code!
这篇关于显示错误对象引用未设置为对象的实例。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文