vb.net - 将鼠标保持在 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
解决方案
推荐阅读
- ssl - 无法使用 Charles Proxy 加密 Instagram 请求
- linux - 延迟邮件plesk,邮件无法从服务器发送邮件
- cumulocity - 如何使用用户给出的片段/系列名称指定 SmartREST 2.0 模板
- mysql - 我可以使用时间戳为mysql中的后续行获得以分钟为单位的时差吗
- ansible - 如何使用单个任务在ansible中的同一目录中创建目录和文件
- c++ - 使用 Irrlicht 库时未定义的引用
- javascript - Tabulator 表上未显示复选框以选择行/多行
- perl - OTRS 创建票证时出现内部服务器错误
- javascript - 以 content_scripts 方式将 brython 注入网页
- sip - PJSUA:应用程序控制台上调试信息的详细程度