Я создаю программу скриншотов, и мне нужно, чтобы пользователь мог выбрать область снимка экрана с помощью мыши. До сих пор я мог программировать перетаскивание с верхнего левого на нижнее правое, но мои попытки сделать снизу справа вверху слева оказались безуспешными. Как это сделать?Рисование Прямоугольник в PictureBox
Это рабочий код для верхнего левого в нижний правый:
If e.X > SelectedPoint.X And e.Y > SelectedPoint.Y Then
recsize = New Point(e.X - SelectedPoint.X, e.Y - SelectedPoint.Y)
rectangle = New Rectangle(SelectedPoint, recsize)
Вот полный код:
If IsMouseDown = True Then
Screenshot_PicBox.Refresh()
Dim recsize As Point
Dim rectangle As Rectangle
If e.X > SelectedPoint.X And e.Y > SelectedPoint.Y Then
recsize = New Point(e.X - SelectedPoint.X, e.Y - SelectedPoint.Y)
rectangle = New Rectangle(SelectedPoint, recsize)
ElseIf e.X < SelectedPoint.X And e.Y > SelectedPoint.Y Then
recsize = New Point(e.X - SelectedPoint.X, e.Y - SelectedPoint.Y)
SelectedPoint = New Point(-SelectedPoint.X, SelectedPoint.Y)
rectangle = New Rectangle(SelectedPoint, recsize)
End If
Screenshot_PicBox.CreateGraphics.DrawRectangle(Pens.Blue, rectangle)
End If
'CreateGraphics' весьма вероятно, не путь. То, что вы рисуете, не сохранится. – Plutonix
Что вы подразумеваете под "persist"? Способ, которым я планирую работать, больше для визуальной обратной связи, и код не обязательно будет использовать форму для обрезки изображения. –