Упрощение нескольких похожих «частных модулей» в VB

#vba

#vba

Вопрос:

Я пишу программу на VB, которая имеет несколько позиций, в которых при наведении курсора мыши на элемент появляется одно и то же изображение.

В настоящее время у меня есть:

 Private Sub PictureBox1_MouseMove(sender As Object, e As MouseEventArgs) Handles PictureBox1.MouseMove
    PictureBox1.Image = Image.FromFile(picturePath)
End Sub

Private Sub PictureBox2_MouseMove(sender As Object, e As MouseEventArgs) Handles PictureBox2.MouseMove
    PictureBox2.Image = Image.FromFile(picturePath)
End Sub

Private Sub PictureBox3_MouseMove(sender As Object, e As MouseEventArgs) Handles PictureBox3.MouseMove
    PictureBox3.Image = Image.FromFile(picturePath)
End Sub

Private Sub PictureBox4_MouseMove(sender As Object, e As MouseEventArgs) Handles PictureBox4.MouseMove
    PictureBox4.Image = Image.FromFile(picturePath)
End Sub

Private Sub PictureBox5_MouseMove(sender As Object, e As MouseEventArgs) Handles PictureBox5.MouseMove
    PictureBox5.Image = Image.FromFile(picturePath)
End Sub

Private Sub PictureBox6_MouseMove(sender As Object, e As MouseEventArgs) Handles PictureBox6.MouseMove
    PictureBox6.Image = Image.FromFile(picturePath)
End Sub

Private Sub PictureBox7_MouseMove(sender As Object, e As MouseEventArgs) Handles PictureBox7.MouseMove
    PictureBox7.Image = Image.FromFile(picturePath)
End Sub
  

Это работает нормально, однако я хочу сжать свой код. Конечно, есть способ превратить это всего в 1 или 2 частных модуля.

Обратите внимание, что это всего лишь фрагмент моего кода.

Имена объектов легко именуются PictureBox1 , PictureBox2 и т.д.

С уважением

Хьюго.

Ответ №1:

 Private Sub PictureBox_MouseMove(sender As Object, e As MouseEventArgs) Handles PictureBox1.MouseMove, PictureBox2.MouseMove, PictureBox3.MouseMove, PictureBox4.MouseMove, PictureBox5.MouseMove, PictureBox6.MouseMove, PictureBox7.MouseMove
    DirectCast(sender, PictureBox).Image = Image.FromFile(picturePath)
End Sub