Страница: 1 |
|
Вопрос: как на мониторе, в любом месте, нарисовать прямоуг
|
Добавлено: 10.03.08 00:12
|
|
Автор вопроса: Георгич
|
Добренький вечерок!
У меня вопрос такой, как на мониторе, в любом месте, нарисовать прямоугольник из под стрелки курсора?
В коде ниже, без проблем , я на форме , нажимаю левую кнопку мыши удерживая её, виду курсор в любую сторону, отпускаю кнопку, прямоугольник готов. А как , в не формы ?
В коде видно,что я применил метод ,ControlPaint.DrawReversibleFrame(Прямоугольник, Color.Red, FrameStyle.Thick),
Который рисует на экране и этим методом можно нарисовать прямоугольник на экране но только по четко заданным размерам, а не из под курсора
И даже в данном коде если, нажать кнопку мыши на форме и курсор выводить за пределы формы, то на экране будут оставться прямоугольники но их много, как забор. Такое впечатление, что экрану надо дать команду перерисоваться, типа (Refresh), возможно ли это?
Я пиши на vb.net 2003
Public Class Form1
Private Прямоугольник As Rectangle
Private Start As Point
Private ПредачаДвиж As Point
Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseDown
If e.Button = MouseButtons.Left Then
Start.X = Cursor.Position.X
Start.Y = Cursor.Position.Y
ПредачаДвиж = Start
End If
End Sub
Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove
If e.Button = MouseButtons.Left Then
Dim Curent As Point
Curent.X = Cursor.Position.X
Curent.Y = Cursor.Position.Y
Прямоугольник = New Rectangle(Start.X, Start.Y, Curent.X - Start.X, Curent.Y - Start.Y)
Me.Refresh()
ControlPaint.DrawReversibleFrame(Прямоугольник, Color.Red, FrameStyle.Thick)
ПредачаДвиж = Curent
End If
End Sub
End Class
Ответить
|
Страница: 1 |
Поиск по форуму