Лазерная указка - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д