VB.net限制对范围内的事件处理程序的访问,或

VB.net限制对范围内的事件处理程序的访问,或,.net,vb.net,events,user-interface,.net,Vb.net,Events,User Interface,我有一个事件处理程序,可以很好地处理它的事件。但是,我不想直接调用处理程序,或者更具体地说,让我的程序员同事能够直接调用它,因为我只想在设置激光电流时更新nudCurrent.Value。 公共类TestClass 使用事件myCurrentSource作为新的CurrentSourceClass进行Dim 私有子测试脚本() 除其他外,将当前值设置为85 myCurrentSource.SetCurrent(85) 端接头 私有子handleLaserCurrentSet()处理myCurr

我有一个事件处理程序,可以很好地处理它的事件。但是,我不想直接调用处理程序,或者更具体地说,让我的程序员同事能够直接调用它,因为我只想在设置激光电流时更新nudCurrent.Value。

公共类TestClass
使用事件myCurrentSource作为新的CurrentSourceClass进行Dim
私有子测试脚本()
除其他外,将当前值设置为85
myCurrentSource.SetCurrent(85)
端接头
私有子handleLaserCurrentSet()处理myCurrentSource.LaserCurrentSet
Me.nudccurrent.Value=myCurrentSource.GetCurrent()
端接头
末级
公共类CurrentSourceClass
公共事件激光电流集()
Private currentSet为Double=Double.NaN
公共子设置电流(ByVal dCurrentAmps为双精度)
'在此处设置电流源上的电流
Me.currentSet=dCurrentAmps
"那就把事情提出来
RaiseEvent LaserCurrentSet()
端接头
公共函数GetCurrent()为双精度
返回我.currentSet
端函数
末级
我想不出一种方法来限制对其范围内的事件处理程序例程的访问,因此我正在寻找另一种方法来实现这一点。最佳做法是什么


*我知道在设置当前值后,我可以将
me.nudccurrent.Value=85
放进去,但我喜欢事件驱动UI更新的整洁。我可以吃蛋糕吗?

您可以使用匿名事件处理程序

AddHandler myCurrentSource.LaserCurrentSet,
                Sub()
                    Me.nudCurrent.Value = myCurrentSource.GetCurrent()
                End Sub
但是请记住,该值可以在类中的任何位置设置。你不能限制这一点