2013-03-21 96 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