我不知道为什么我会得到这个'Addressof'错误?
问题描述:
使用此添加处理程序时出现问题。它一直说我不知道为什么我会得到这个'Addressof'错误?
“AddressOf操作数必须是方法的名称(不带圆括号)”。
我不知道我做了什么错误发生这种情况。 为补充处理程序的代码:
AddHandler NudQuantityOfItem(a).SelectedItem, AddressOf TotalPrice(T)
的Totalprice
代码:
`Public Sub Totalprice(ByVal a As Integer)
For T = 1 To CInt(CustomerMenu.NudQuantityOfItem.SelectedItem)
TotalItemPriceCalculation(T, a)
Next
End Sub`
的Quantity
代码:
NudQuantityOfItem(a) = New numericupdowncounter
NudQuantityOfItem(a).Location = New Point(X, Y)
NudQuantityofitem(a).Width = 23 : cboQuantity(i).Height = 33`
答
我还不能肯定这但我认为AddressOf的目标与hooked事件需要相同的签名。
例如
AddHandler c.TextChanged, AddressOf SetDirty
Private Sub SetDirty(ByVal sender As Object, ByVal e As System.EventArgs)
If Not mbDirty AndAlso Not mbFormLoad Then
mbDirty = True
....
End Sub
请注意,SetDirty与TextChanged的参数相同。
在你的情况下,你会使用发件人来定义更改的控件,然后找到所需的值。
它应该是'AddressOf StarterQuantityPrice'(不带参数)。就像消息说的那样...你必须找到另一种方法来获取那个参数。通常的方式是通过'sender As Object'。 –
您编写它的方式,StarterQuantityPrice(i)必须是返回委托的函数。 –
检查此答案是一个很好的示例:http://*.com/a/21420015/1220550 –