vb.net - Visual Studio 自定义控件错误的 AddHandler

标签 vb.net controls mouseenter addhandler

我有一个 MouseEnter 事件,当前处理我的表单上的一些自定义控件。该程序是一个纸牌游戏。我有一个集合(handCards),当用户绘制卡片时会填充该集合,然后将最新的卡片添加到表单中。该集合包含各种自定义类型的卡片,所有这些卡片都继承自 picturebox。从牌堆中抽出卡片并将其添加到表单中效果很好。我遇到的麻烦是,在运行时,绘制卡片并将其添加到表单后,我创建了一个 addhandler 代码行,让这些卡片响应我的 MouseEnter 事件,但我的 addhandler 代码行告诉我MouseEnter 不是对象的事件。如何解决这个问题,以便在绘制卡片并将其添加到表单后,当鼠标进入新的自定义控件时,我的 MouseEnter 事件会触发?这是我尝试过的众多方法之一,我认为应该是最简单、最容易实现的方法。

deck.DrawCard()
AddHandler handCards(handCards.Count).MouseEnter, AddressOf Cards_MouseEnter

附注MouseEnter 事件对于运行之前窗体上的自定义控件效果很好,它所做的就是获取控件的图像并通过将图像放置到窗体上更大的卡片上来放大它。

最佳答案

我假设您的 handCards 集合是一个对象集合。尝试使用 CType 将其转换为正确的类型,像这样:

AddHandler CType(handCards(handCards.Count), PictureBox).MouseEnter, AddressOf Cards_MouseEnter

正如 @Jason 提到的,使用 handCards.Count 作为索引将不起作用,因为它是项目总数,而您的索引是从零开始的,并且会比计数减一。 所以handCards(handCard.Count)应该是handCards(handCards.Count -1)

关于vb.net - Visual Studio 自定义控件错误的 AddHandler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10777461/

相关文章:

vb.net - 针对 Access 数据库的 Update 语句中的语法错误(使用 OleDbCommandBuilder)

vb.net - 如何将无人图像放入datagridview的图像列中

mysql - 如何在VB.NET10中执行包含:= operator in it的mysql查询

c# - 相当于Visual Studio的 "Properties Window"的控件?

html - 如何在网页中插入音频并在html中隐藏控件

c# - 用于限制可以为属性设置的值的结构化代码

javascript - CSS 指针事件 : none while allowing hover

javascript - 如何使用 jQuery 延迟 mouseleave 操作

jquery - 复杂的 jQuery .hover 工作

delphi - 如何在设计时禁用子控件?