-1

私はこのチュートリアルに従って、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];
         }
     }

お時間をいただきありがとうございます。

4

1 に答える 1