当我没有尝试施放任何东西时出现错误

时间:2013-06-02 20:32:23

标签: vb.net

我正试图让一个简单的纸牌游戏工作......而且我得到了一个“不可能投出”的错误...但我不是想要投出任何东西......我有点儿混淆为什么我得到这个错误。下面是我使用的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

1 个答案:

答案 0 :(得分:0)

Haaaaaaaaaaaaaaa我找到了......我的一个朋友告诉我要注意事件,他是对的。

我正在使用Handles Holder.ControlAdded

的事件

该发送者甚至是持有者本身,我假设它是添加的控件,因此InvalidCastError。

在control.add()行而不是在事件内部引发错误,这导致我的混乱。