Вот как я бы решил эту проблему:
- Создайте свойство в Form2, в котором будет сохранено изображение, по которому щелкнули
- В событиях кликов PictureBox в Form2 установите свойствок изображению соответствующего PictureBox, установите DialogResult формы в OK, а затем закройте форму.
- В ваших событиях щелчка PictureBox в Form1 вызовите ShowDialog в форме, проверьте, является ли DialogResult в порядке, и если да, тоустановите для соответствующего изображения PictureBox свойство, объявленное на первом шаге
В вашей форме Form2 вы добавите все свои элементы управления PictureBox и установите их изображения в конструкторе. Ваш код для Form2 будет выглядеть следующим образом:
Public Class Form2
Public Property SelectedImage As Image
Private Sub Form2_PictureBoxClicked(ByVal sender As Object, ByVal e As EventArgs) Handles PictureBox1.Click, PictureBox2.Click, PictureBox3.Click, PictureBox4.Click, PictureBox5.Click, PictureBox6.Click, PictureBox7.Click, PictureBox8.Click, PictureBox9.Click, PictureBox10.Click, PictureBox11.Click, PictureBox12.Click, PictureBox13.Click, PictureBox14.Click, PictureBox15.Click, PictureBox16.Click, PictureBox16.Click
Dim clickedButton As Button = DirectCast(sender, PictureBox)
With Me
.SelectedImage = clickedButton.Image
.DialogResult = DialogResult.Ok
.Close()
End With
End Sub
End Class
Затем в Form1 вы добавите все свои элементы управления PictureBox в конструктор, и код для Form1 будет выглядеть следующим образом:
Public Class Form1
Private Sub Form1_PictureBoxClicked(ByVal sender As Object, ByVal e As EventArgs) Handles PictureBox1.Click, PictureBox2.Click, PictureBox3.Click, PictureBox4.Click, PictureBox5.Click, PictureBox6.Click, PictureBox7.Click, PictureBox8.Click, PictureBox9.Click, PictureBox10.Click, PictureBox11.Click, PictureBox12.Click, PictureBox13.Click, PictureBox14.Click, PictureBox15.Click, PictureBox16.Click
Dim clickedButton As Button = DirectCast(sender, PictureBox)
Using frm2 As Form2 = New Form2()
If frm2.ShowDialog() = DialogResult.Ok Then
clickedButton.Image = frm2.SelectedImage
End If
End Using
End Sub
End Class