2013-04-30 91 views
0

所以我试图用如何让我的鼠标不离开我想要的矩形?

cursor.Clip = New Rectangle (desired coordinates) 

但由于某些原因,它似乎并没有工作。我不知道我做错了什么。它在两侧(右侧和底部)工作,但在另一侧不起作用。但是即使在左侧,它也没有在右边的坐标上,我设置了矩形。

我该如何解决这个问题?

+0

Rectangle()应该在**屏幕** coords中。你正确地转换你的矩形值吗?基于什么矩形? – 2013-04-30 21:03:16

回答

0

确保您的矩形值在屏幕 coords。例如,下面的代码会在点击Button1时将光标剪辑到Button2上:

Public Class Form1 

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click 
     Cursor.Clip = Me.RectangleToScreen(Button2.Bounds) ' confine cursor to the second button 
    End Sub 

    Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click 
     Cursor.Clip = Nothing ' release the clip 
    End Sub 

End Class 
+0

我有正确的矩形,我用一种颜色填充它,并检查它是否正确,但它不会起作用,但是这个'RectangleToScreen'属性现在工作得很好,谢谢。 – Xetusath 2013-04-30 21:23:24

+0

“我有正确的矩形,我填充了一个颜色并检查它是否正确”这是因为填充矩形也会在客户端坐标系中完成,但Clip()将这些客户端坐标系视为屏幕坐标系。 – 2013-04-30 22:09:52

+0

请注意,在我的示例中,由于Form是Button的容器,因此正在对“Me”调用RectangleToScreen()。如果使用不同的容器,如面板,那么您将使用该容器而不是Form(“Panel1.RectangleToScreen”)。你也可以只使用Button2来完成,而不需要引用它的容器,像这样:'Cursor.Clip = Button2.RectangleToScreen(Button2.ClientRectangle)' – 2013-04-30 22:11:43

相关问题