我正试图让一个简单的纸牌游戏工作......而且我得到了一个“不可能投出”的错误...但我不是想要投出任何东西......我有点儿混淆为什么我得到这个错误。下面是我使用的3个对象的快速摘要。
Public Class Holder
inherits Panel
end class
Public Class Card
inherits PictureBox
end class
public Class Location
Public Property X as integer
Public Property Y as integer
end class
Public Class Board
inherits Form
Public Property Tile as Dictionnary(of Location, Holder)
Public sub PlayCard(card as Card, loc as Location)
Tile(loc).Controls.Add(card)
end sub
end Class
我得到一个InvalidCastException:
无法在“卡片”中输入对象类型的“持有人”。
我已经进行了三次检查,以确保它真的是一张卡片,作为参数传递给PlayCard sub ....我不知道该怎么做......
有什么建议吗?
编辑:
Private Sub TEST() Handles Board.Load
Dim c = New Card
Dim p1 As Location
p1 = New Location(2, 1)
c.Image = My.Resources.Tree
Me.Play(c, p1)
End Sub
答案 0 :(得分:0)
Haaaaaaaaaaaaaaa我找到了......我的一个朋友告诉我要注意事件,他是对的。
我正在使用Handles Holder.ControlAdded
的事件该发送者甚至是持有者本身,我假设它是添加的控件,因此InvalidCastError。
在control.add()行而不是在事件内部引发错误,这导致我的混乱。