Как преобразовать событие picturebox.click в событие button.click

Я пытаюсь сделать два варианта, чтобы нарисовать границу вокруг графического блока. Я могу щелкнуть на картинке, чтобы выделить, но теперь хотел бы иметь возможность использовать кнопку, чтобы сделать то же самое.

 Private Sub imgLabel_Click(sender As Object, e As EventArgs) Handles imgLabel.Click

Dim BorderBounds As Rectangle = DirectCast(sender, PictureBox).ClientRectangle BorderBounds.Inflate(-1, -1)

ControlPaint.DrawBorder(DirectCast(sender, PictureBox).CreateGraphics, BorderBounds, Color.Orange, ButtonBorderStyle.Solid)

If Not (HighLightededPictureBox Is Nothing) Then
    HighLightededPictureBox.Invalidate()
End If

'Rememeber the last highlighted PictureBox  
HighLightededPictureBox = CType(sender, PictureBox)

Когда я пытаюсь добавить нажатие кнопки, я получаю исключение Unhandled - System.windows.forms.button для ошибки System.windows.forms.picturebox.

Я попытался добавить событие нажатия кнопки после "Ручки", которое вызывает вышеуказанную ошибку.

 Private Sub imgLabel_Click(sender As Object, e As EventArgs) Handles imgLabel.Click, button1.click

Я довольно новичок в программировании, и мои результаты поиска приносят пользу. Я не полностью понимаю Ctypes/Directcasts.

Любая помощь с благодарностью.

Итак, я закончил с этим...

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    Dim boxsize As New Size(192, 169)
    Dim recpoint As New Point(0, 0)
    Dim myrectangle As New Rectangle(recpoint, boxsize)
    myrectangle.Inflate(-3, -3)
    Dim G As Drawing.Graphics = PictureBox1.CreateGraphics
    Dim Pen As New Pen(Color.Orange, 5)
    G.DrawRectangle(Pen, myrectangle)
End Sub

Кажется, работает нормально, но требует много ручного ввода точек. У меня есть еще 6 из них.

1 ответ

Вы могли бы попробовать

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    imgLabel_Click(imgLabel, nothing)
End Sub
Другие вопросы по тегам