gpt4 book ai didi

vb.net - 每次使用 vb.net 单击鼠标按钮时,如何放置/放置图像?

转载 作者:行者123 更新时间:2023-12-02 00:24:49 24 4
gpt4 key购买 nike

我查看了“如何在 Javascript 中通过单击鼠标放置图像?”但它有一小段 Java;远远超过我对 Java 的了解。这是过去一周我最接近找到答案的时间。

这是我想做的(不知道是否可行):我有一个面板和一个带有 3 个按钮的工具条。每个按钮代表不同的图像。我想点击一个按钮(一次),然后进入面板,每次我点击鼠标按钮时,它都会在我点击的地方放置图像。这仅在我单击同一按钮或其他按钮之一时结束。我不想每次都将图像拖到面板中。换句话说,按钮保持按下状态,事件/ Action 保持事件状态。

如有任何帮助,我们将不胜感激。

最佳答案

这是一个示例应用程序。它只是一个带有 ToolStrip 的窗体,以及几个按钮,每个按钮都添加了一个图像。每个按钮的关键属性是 CheckOnClick=True,这将使按钮保持按下状态。

ToolStrip 没有类似于单选按钮的功能,因此您必须自己“取消选中”其他 ToolStripButton,我已在 ItemClicked 事件中处理了这一点。

Public Class Form1
Private _ActiveImage As Image = Nothing

Private Class ImagePoint
Public Location As Point
Public Image As Image

Public Sub New(ByVal image As Image, ByVal location As Point)
Me.Image = image
Me.Location = location
End Sub
End Class

Private _Images As New List(Of ImagePoint)

Public Sub New()
InitializeComponent()
Me.DoubleBuffered = True
End Sub

Private Sub Form1_Paint(ByVal sender As Object, ByVal e As PaintEventArgs) Handles MyBase.Paint
For Each imageItem As ImagePoint In _Images
e.Graphics.DrawImage(imageItem.Image, imageItem.Location)
Next
End Sub

Private Sub ToolStrip1_ItemClicked(ByVal sender As Object, ByVal e As ToolStripItemClickedEventArgs) Handles ToolStrip1.ItemClicked
For Each toolButton As ToolStripButton In ToolStrip1.Items.OfType(Of ToolStripButton)()
If toolButton.CheckOnClick Then
If e.ClickedItem.Equals(toolButton) Then
_ActiveImage = e.ClickedItem.Image
Else
toolButton.Checked = False
End If
End If
Next
End Sub

Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As MouseEventArgs) Handles MyBase.MouseDown
If _ActiveImage IsNot Nothing AndAlso e.Button = MouseButtons.Left Then
_Images.Add(New ImagePoint(_ActiveImage, e.Location))
Me.Invalidate()
End If
End Sub
End Class

这个例子只使用一个简单的类来保存哪个图像被放置在什么位置,并且绘画事件只是循环遍历列表并绘制图像。

如果您将来要删除图像,那么您必须在绘制任何图像之前调用 e.Graphics.Clear(Color.White)

关于vb.net - 每次使用 vb.net 单击鼠标按钮时,如何放置/放置图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9217921/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com