首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AddHandler Lambda表达

AddHandler Lambda表达
EN

Stack Overflow用户
提问于 2014-11-18 13:39:25
回答 2查看 483关注 0票数 0

守则:

代码语言:javascript
复制
    Dim x, y as [Delegate]
    x = Sub() MeMouseMove(points)
    y = Sub() MeMouseDown(points)
    AddHandler MainGrid.MouseMove, x
    AddHandler MainGrid.MouseLeftButtonDown, y

代码背景:

  • 'MainGrid‘是一个与它所在的窗口大小和宽度相同的网格
  • “x”和“y”被宣布为代表
  • ‘'points’是我需要通过编程创建的处理程序传递的类。
  • 'MeMouseMove‘和'MeMouseDown’是我需要调用的子

问题是:

我收到一个错误:

发生了“System.InvalidCastException”类型的未处理异常 其他信息:无法将“VB$AnonymousDelegate_0”类型的对象强制转换为“System.Windows.Input.MouseEventHandler”。

我相信问题是关于x和y变量的声明

任何帮助都是非常感谢和感谢的时间,瑞德

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-19 09:05:47

找到解决办法

代码语言:javascript
复制
        Dim x As New MouseEventHandler(Sub() MeMouseMove(points))
        Dim y As New MouseButtonEventHandler(Sub() MeMouseDown(points))

将变量“x”和“y”更改为适当的变量类型(而不是代表)

票数 1
EN

Stack Overflow用户

发布于 2014-11-18 13:49:09

MouseEventHandler有两个参数对象发送方和RoutedEventArgs e,所以您应该尝试

代码语言:javascript
复制
x = Sub(s, e) MeMouseMove(points)
y = Sub(s, e) MeMouseDown(points)
AddHandler MainGrid.MouseMove, AddressOf x
AddHandler MainGrid.MouseLeftButtonDown, AddressOf y
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26995741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档