首页 > 解决方案 > 将鼠标保持在 WinForm 范围内

问题描述

我有一个鼠标移动方法,可以在 WinForms 项目上沿 Y 轴上下移动按钮
当光标超出表单边界时,按钮不会移动
我想限制光标退出或失去焦点表单
我还想对按钮 btnPad 的顶部和底部 Y 位置设置限制
表单上的其他控件是三个按钮,形成顶部、底部和右侧墙
顶部和底部墙壁的 Y INSIDE 尺寸为 50 和690
FWIW 表格尺寸为宽度 1000 和高度 890

我有一些代码阻止光标进入名为 MoveCursor 的表单
我将发布一些我尝试过的代码,例如 frmStart MouseLeave 和 MouseEnter 以及实际的 MouseMove 代码

问题是如何防止光标退出表单?

Private Sub MoveCursor()
    ' Set the Current cursor, move the cursor's Position,
    ' and set its clipping rectangle to the form. 
    Me.Cursor = New Cursor(Cursor.Current.Handle)
    Cursor.Position = New Point((Cursor.Position.X + 1000), (Cursor.Position.Y + 890))
    Cursor.Clip = Me.Bounds
    Cursor.Clip = New Rectangle(Me.Location, Me.Size)
End Sub
Private Sub frmStart_MouseLeave(ByVal sender As Object, ByVal e As EventArgs)
    Cursor.Position = New Point(X, Y)
    Cursor.Clip = Me.Bounds
End Sub
Private Sub frmStart_MouseMove(sender As Object, e As MouseEventArgs) Handles Me.MouseMove
    MoveCursor()
    btnPad.Top = e.Y
End Sub

下面的代码尽可能接近将光标保持在游戏区域内,这是鼠标仍然在右侧徘徊的形式

Private Sub frmStart_MouseMove(sender As Object, e As MouseEventArgs) Handles Me.MouseMove
    Cursor.Clip = New Rectangle(Me.Location, Me.Size)
    btnPad.Top = e.Y
End Sub

标签: vb.netwinformscursor

解决方案


推荐阅读