私はこのチュートリアルに従って、ac# パズル ゲームを作成しています。
私の問題は、チュートリアルのステップ 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];
問題のソース コードの一部を次に示します。
private void PlayLevel()
{
if (pictureBoxWhole != null)
{
groupboxPuzzle.Controls.Remove(pictureBoxWhole);
pictureBoxWhole.Dispose();
pictureBoxWhole = null;
}
if (picBoxes == null)
{
images = new Image[currentLevel];
picBoxes = new PictureBox[currentLevel];
}
int numRow = (int)Math.Sqrt(currentLevel);
int numCol = numRow;
int unitX = groupboxPuzzle.Width / numRow;
int unitY = groupboxPuzzle.Height / numCol;
int[] indice = new int[currentLevel];
int i = 0;
for (i = 0; i < currentLevel; i++)
{
indice[i] = i;
if (picBoxes[i] == null)
{
picBoxes[i] = new MyPictureBox();
picBoxes[i].Click += new EventHandler(OnPuzzleClick);
picBoxes[i].BorderStyle = BorderStyle.Fixed3D;
}
picBoxes[i].Width = unitX;
picBoxes[i].Height = unitY;
((MyPictureBox)picBoxes[i]).Index = i;
CreateBitmapImage(image, images, i, numRow, numCol, unitX, unitY);
picBoxes[i].Location = new Point(unitX * (i % numCol), unitY * (i / numCol));
if (!groupboxPuzzle.Controls.Contains(picBoxes[i]))
groupboxPuzzle.Controls.Add(picBoxes[i]);
}
suffle(ref indice);
for (i = 0; i < currentLevel; i++)
{
picBoxes[i].Image = images[indice[i]];
((MyPictureBox)picBoxes[i]).ImageIndex = indice[i];
}
}
お時間をいただきありがとうございます。