2013-03-21 101 views
-2

我按照这个教程做了一个c#益智游戏http://jetgamedev.blogspot.ro/2012/05/lesson-0229-c-lab-4-create-image-puzzle.htmlVS c#益智游戏

我的问题是在本教程的第77步,它无法找到任何PictureBox类,所以我已经将Form1添加为父类。现在我在步骤86,我得到这个错误:

Cannot implicitly convert type 'PuzzleImage.MyPictureBox' to 'System.Windows.Forms.PictureBox' 

问题出在下面几行:

picBoxes[i] = new MyPictureBox(); 
((MyPictureBox)picBoxes[i]).Index = i; 
((MyPictureBox)picBoxes[i]).ImageIndex = indice[i]; 

这里的问题是源代码的一部分:

​​3210

谢谢你的时间。

+0

什么是MyPictureBox?它是从哪里继承的? – Oded 2013-03-21 21:10:22

+0

它是在步骤76中创建的一个类。 – user2194683 2013-03-21 21:12:11

+2

关于“我的问题在教程的第77步,它无法找到任何PictureBox类,因此我已经将Form1添加为父类。”如果你已经使'MyPictureBox'继承自'Form1',它就不会起作用。添加'include System.Windows.Forms',它应该找到'PictureBox'来继承。 – 2013-03-21 21:17:29

回答

1

picBoxesPictureBox的数组。每个元素的类型为PictureBox

你有这样一行:

picBoxes[i] = new MyPictureBox(); 

当你试图分配不兼容的类型。

如果将其更改为:

picBoxes[i] = new PictureBox(); 

它将工作。

+0

是的但在步骤86它说要这样做:转到Form1.cs,进入PlayLevel函数,使用MyPictureBox替换PictureBox – user2194683 2013-03-21 21:10:47

+1

步骤77是'class MyPictureBox:PictureBox'。我认为OP在试图说这是行不通的。我的猜测是该类需要对Forms命名空间的引用。 – LarsTech 2013-03-21 21:11:13

+0

@LarsTech - 它可能并不明确,但我怀疑作者意图将“PictureBox”声明的所有事件都更改为“MyPictureBox”。 – Oded 2013-03-21 21:14:11