【发布时间】:2014-11-18 13:39:25
【问题描述】:
代码:
Dim x, y as [Delegate]
x = Sub() MeMouseMove(points)
y = Sub() MeMouseDown(points)
AddHandler MainGrid.MouseMove, x
AddHandler MainGrid.MouseLeftButtonDown, y
代码背景:
- 'MainGrid' 是一个与所在窗口大小和宽度相同的网格
- 'x' 和 'y' 被声明为 [Delegate]
- 'points' 是我需要通过以编程方式创建的处理程序的类
- 'MeMouseMove' 和 'MeMouseDown' 是我需要调用的子程序
问题:
我收到一个错误:
发生了“System.InvalidCastException”类型的未处理异常
附加信息:无法将“VB$AnonymousDelegate_0”类型的对象转换为“System.Windows.Input.MouseEventHandler”类型。
我认为问题出在 x 和 y 变量的声明上
任何帮助都将不胜感激,感谢您抽出宝贵的时间,Red
【问题讨论】:
-
一个 MouseEventHandler 有两个参数,你的 lamda 没有。
-
@HansPassant 这不起作用(请参阅下面的 bonyjoe 的回答)
-
已尝试:将变量类型更改为空(例如:“Dim x,y”)。与初始问题相同
-
凹凸。需要帮助,请
标签: wpf vb.net lambda expression