私のプログラムには、必要なフォルダの画像を表示する10枚の画像があります。次のボタンと前のボタンを追加すると、ユーザーは次の10枚の写真または最後の10枚の写真を閲覧できます。最初の10枚の画像は正常に表示されますが、次のボタンは、フォルダにちょうど20枚の画像がある場合にのみ機能します。画像が15枚の場合、クラッシュします。これが私のコードです:
PictureBox[] myPicBoxArray = new PictureBox[10];
string path = @"\\Documents\Pictures\Camera";
private void Form1_Load(object sender, EventArgs e)
{
myPicBoxArray[0] = pictureBox1;
myPicBoxArray[1] = pictureBox2;
myPicBoxArray[2] = pictureBox3;
myPicBoxArray[3] = pictureBox4;
myPicBoxArray[4] = pictureBox5;
myPicBoxArray[5] = pictureBox6;
myPicBoxArray[6] = pictureBox7;
myPicBoxArray[7] = pictureBox8;
myPicBoxArray[8] = pictureBox9;
myPicBoxArray[9] = pictureBox10;
}
//Show button to display first ten pictures
private void showButton_Click(object sender, EventArgs e)
{
string[] files = Directory.GetFiles(path);
int i = 0;
foreach (string ofile in files)
{
myPicBoxArray[i].SizeMode = PictureBoxSizeMode.StretchImage;
myPicBoxArray[i].Image = Image.FromFile(files[i]);
i++;
if (i >= 10)
break;
}
}
private void nextButton_Click(object sender, EventArgs e)//The problem is here,
{
DirectoryInfo fileDir = new DirectoryInfo(path);
while (i2 < 10)
{
myPicBoxArray[i2].SizeMode = PictureBoxSizeMode.StretchImage;
if (i2 + 10 < picArrFileNames.Length)
{
myPicBoxArray[i2].Image = Image.FromFile(picArrFileNames[i2 + 10]);
}
}
}
前のボタンの手がかりはありません。