我在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