Рисование изображения в позиции курсора Visual Basic

По сути, все, что я хочу сделать, - это нарисовать определенное изображение в той позиции на форме или в графическом окне, на которое щелкает мышь в течение 1 секунды. Код, который я пробовал, уже рисует его с произвольным смещением, поэтому я надеялся, что кто-нибудь может мне помочь в этом. Спасибо

1 ответ

Решение

Используйте событие MouseDown() формы и рисуйте в месте, указанном в "eX" и "eY". Вы можете использовать элемент управления Timer(), чтобы получить задержку в одну секунду. Вот быстрый пример:

Public Class Form1

    Private WithEvents Tmr As New System.Windows.Forms.Timer

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Tmr.Interval = 1000
        Tmr.Enabled = False
    End Sub

    Private Sub Form1_MouseDown(sender As Object, e As MouseEventArgs) Handles MyBase.MouseDown
        Using G As Graphics = Me.CreateGraphics
            'G.DrawImage(yourImageReferenceHere, New Point(e.X, e.Y))
            Dim rc As New Rectangle(New Point(e.X, e.Y), New Size(1, 1))
            rc.Inflate(9, 9)
            G.DrawEllipse(Pens.Red, rc)
        End Using
        Tmr.Stop()
        Tmr.Start()
    End Sub

    Private Sub Tmr_Tick(sender As Object, e As EventArgs) Handles Tmr.Tick
        Tmr.Stop()
        Me.Refresh()
    End Sub

End Class
Другие вопросы по тегам