【问题标题】:Draggable label control vb.net [duplicate]可拖动标签控件vb.net [重复]
【发布时间】:2019-01-04 13:22:31
【问题描述】:

我正在尝试编写一个简单的程序来学习英语。虽然已经有这种软件,但我需要创建一个新的,这样我就可以添加自己的材料来练习更多。

我正在使用 VB.NET (VS2012),直到现在我尝试使用标签控制。 我的数据库中的数据是这样的:


上下文示例文本 {B1} 和 {B2} 等等。

在我的数据中,{B1} 和 {B2} 表示空白区域。

如何通过检索用户将哪个选项拖到哪个位置的功能来实现它?

我已经添加了我在下面的意思的 GIF。

提前致谢。 Like this, please click to see

【问题讨论】:

  • 首先要做的是了解拖放在 Windows 窗体中的工作原理。我们不是从零开始教你一门学科的。您需要进行自己的研究,尽最大努力实现实施,然后,如果这不起作用,请在此处发布您所做的工作以及您遇到的确切位置的描述。
  • 我之前的一些回答,您可能会感兴趣:Enable other event while dragging an object,和:Snap PictureBox to Buttons after Drag and Drop

标签: vb.net label draggable


【解决方案1】:

移动所有控件类型的代码在这里:

If e.Button = Windows.Forms.MouseButtons.Left Then
    newpoint = Control.MousePosition
    newpoint.X -= x
    newpoint.Y -= y
    LABEL.Location = newpoint
    Application.DoEvents()
End If

其中 x 是整数,y 是整数,newpoint 是新点。

此代码进入 LABEL.MouseMove 事件。

但是你必须给x和y赋值,代码如下:

Private Sub PANEL_MouseDown(sender As Object, e As MouseEventArgs) Handles PANEL.MouseDown
    x = Control.MousePosition.X - Me.Location.X
    y = Control.MousePosition.Y - Me.Location.Y
End Sub

我知道这段代码不能完全回答你的问题,但它是一个帮助。

【讨论】:

  • 不要使用 Application.DoEvents。拖放是内置的,只需使用 DoDragDrop 调用它。
  • 我在我的软件中使用了这段代码,效果很好。
  • 尝试不使用 DoEvents。 x 和 y 是什么值?你只是说它们是整数。
  • @LarsTech 没有 Application.DoEvents() 它不起作用,但我将此代码与表单和用户控件一起使用。它适用于每种控件类型。我修正了我的答案。
猜你喜欢
  • 1970-01-01
  • 2011-07-03
  • 1970-01-01
  • 1970-01-01
  • 2018-03-02
  • 1970-01-01
  • 1970-01-01
  • 2022-01-18
  • 1970-01-01
相关资源
最近更新 更多