Vb.net 我不知道为什么我会得到这个';地址';错误?

Vb.net 我不知道为什么我会得到这个';地址';错误?,vb.net,Vb.net,使用此添加处理程序时遇到问题。它一直在说 “操作数的地址必须是方法的名称(不带括号)” 我不确定我做错了什么导致了这种情况的发生。 添加处理程序的代码: AddHandler NudQuantityof Item(a)。选择EdItem,AddressOf TotalPrice(T) 总价的代码: `Public Sub Totalprice(ByVal a As Integer) For T = 1 To CInt(CustomerMenu.NudQuantityOfItem.Sele

使用此添加处理程序时遇到问题。它一直在说

“操作数的地址必须是方法的名称(不带括号)”

我不确定我做错了什么导致了这种情况的发生。 添加处理程序的代码:

AddHandler NudQuantityof Item(a)。选择EdItem,AddressOf TotalPrice(T)

总价的代码

`Public Sub Totalprice(ByVal a As Integer)
    For T = 1 To CInt(CustomerMenu.NudQuantityOfItem.SelectedItem)
        TotalItemPriceCalculation(T, a)
    Next
End Sub`
数量的代码

    NudQuantityOfItem(a) = New numericupdowncounter
    NudQuantityOfItem(a).Location = New Point(X, Y)
    NudQuantityofitem(a).Width = 23 :       cboQuantity(i).Height = 33`

我对此并不乐观,但我认为AddressOf的目标需要与hooked事件相同的签名

e、 g

请注意,SetDirty的参数与TextChanged的参数相同


在您的情况下,您可以使用Sender来定义已更改的控件,然后找到所需的值。

它应该是
AddressOf StarterQuantityPrice
(不带参数)。就像短信上说的。。。您必须找到另一种方法来获取其中的参数。通常的方法是通过
发送者作为对象
。按照您编写它的方式,StarterQuantityPrice(i)必须是一个返回委托的函数。请检查此答案,以获得一个很好的示例:您不理解错误消息的哪一部分???停止从问题中删除代码。这有助于回答这个问题。
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