Лазерная указка - Visual Basic .NET/.NET 4.x

Узнай цену своей работы

Формулировка задачи:

Всем доброго времени суток! Возникла острая необходимость сделать что-то вроде "лазерной указки" На прозрачной форме "бегает" красный закрашенный кружок вслед за мышкой. Когда клавишу мыши отпускают - кружок пропадает, нажимают левую клавишу - кружок появляется и бегает за мышкой. Вот код. Но на форме рисуются кружки, а нужно чтобы только один кружок и пропадал, когда нет нажатия на клавишу.

Решение задачи: «Лазерная указка»

textual
Листинг программы
Public Class Form1
        Private clr As Color ' = Color.Black
 
        Dim Pen1 As New Pen(Color.Red, 3)
        Dim dlgColor As New ColorDialog
 
 
    Protected Overrides Sub OnPaint(e As PaintEventArgs)
        MyBase.OnPaint(e)
        e.Graphics.Clear(Me.BackColor)
        If MouseButtons = MouseButtons.Left Then
            e.Graphics.DrawEllipse(Pen1, PointToClient(MousePosition).X - 10, PointToClient(MousePosition).Y - 10, 20, 20)
        End If
    End Sub
        Private Sub Form1_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseDown
            Invalidate()
        End Sub
 
        Private Sub Form1_MouseUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseUp
            Invalidate()
        End Sub
 
        Private Sub Form1_MouseMove(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove
            Invalidate()
        End Sub
 
        'Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
 
        '   If dlgColor.ShowDialog = Windows.Forms.DialogResult.OK Then
        '       clr = dlgColor.Color 'выбранный цвет
        '   End If
        'End Sub
 
        Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            'NumericUpDown1.Value = 5
            'NumericUpDown1.Maximum = 20
            'NumericUpDown1.Minimum = 1
            '     Me.BackColor = Color.FromArgb(0, 255, 0)
            '      Me.TransparencyKey = Color.FromArgb(0, 255, 0) ' прозрачный цвет фона
        End Sub
 
    End Class

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.25 из 5