【发布时间】:2012-03-18 18:35:51
【问题描述】:
我正在 vb.net 中编写一个允许用户调整大小的控件。到目前为止,调整大小有效,但我无法正常工作,而不是移动鼠标移动的位置,它似乎在两个位置之间闪烁,但我无法弄清楚这些位置来自哪里。它遵循鼠标某种。我知道解释不是很好,所以这里有一些代码,您可以自己查看:pastebin。
为这种糟糕的质量道歉(请指出不好的地方,以便我纠正),但这真的让我做了一场噩梦,我想不出一个干净的方式来写这个。
如果有人对为什么它不会移动到正确的位置有任何答案,我将非常感激!
编辑:为了清除代码一点,移动发生在所选句柄为“m”的位置。这是哪一部分:
If SelectedHandle.Contains("m") Then
If e.Button = MouseButtons.None Then
SelectedHandle = ""
Else
Me.Location = e.Location
End If
End If
将其更改为此有效,但它会跳转到控件的中间,而我希望它相对于用户在控件上单击鼠标的位置移动
If SelectedHandle.Contains("m") Then
If e.Button = MouseButtons.None Then
SelectedHandle = ""
Else
Dim newloc = Me.Location
newloc.Offset(e.X, e.Y)
newloc.Offset(-0.5 * Width, -0.5 * Height)
Me.Location = newloc
End If
End If
【问题讨论】:
标签: .net vb.net winforms user-controls move