Изменение изображения в массиве picturebox нажатием кнопки - PullRequest
0 голосов
/ 27 мая 2019

Я хочу сгенерировать и изменить изображение в массиве PictureBox нажатием кнопки.

Вот то, что я пробовал до сих пор.

public Form1() {
     InitializeComponent();
 }

 PictureBox[] boxes = new PictureBox[6];

 private void GenerateButton1_Click(object sender, EventArgs e) {

     for (int i = 0; i < boxes.Length; i++) {
         boxes[i] = new PictureBox(); //set the pointer to a new PictureBox instance
         if (i == 0) boxes[i].Location = new System.Drawing.Point(3, 3);
         if (i == 1) boxes[i].Location = new System.Drawing.Point(221, 3);
         if (i == 2) boxes[i].Location = new System.Drawing.Point(439, 3);
         if (i == 3) boxes[i].Location = new System.Drawing.Point(3, 210);
         if (i == 4) boxes[i].Location = new System.Drawing.Point(221, 210);
         if (i == 5) boxes[i].Location = new System.Drawing.Point(439, 210);
         boxes[i].Size = new System.Drawing.Size(200, 200);
         boxes[i].Image = Image.FromFile(Application.StartupPath + "\\red.PNG"); //for setting its image

     }

     this.Controls.AddRange(boxes);
 }

 private void button1_Click(object sender, EventArgs e) {

     int i = 3;
     int signal = 1;
     boxes[i].SizeMode = PictureBoxSizeMode.StretchImage;
     if (signal == 0) boxes[i].Image = Image.FromFile(Application.StartupPath + "\\red.PNG");
     if (signal == 1) boxes[i].Image = Image.FromFile(Application.StartupPath + "\\green.PNG");
     if (signal == 2) boxes[i].Image = Image.FromFile(Application.StartupPath + "\\grey.PNG");
 }
 }
 }

, нажав кнопку button1, изображениеизменится с red.PNG на green.PNG или grey.PNG в зависимости от условия, однако мне придется повторить объявление Свойства изображения, например, boxes[i].SizeMode = PictureBoxSizeMode.StretchImage;.В противном случае PictureBox потеряет свои свойства.Есть ли более простой способ сделать это.

Заранее спасибо.

...