我需要在我的 VB 绘图程序中更改图片框上的鼠标速度。
有没有办法在不更改系统设置的情况下专门针对对象执行此操作?
您可以修改指针为每个鼠标事件移动的距离,而不是更改速度。这可能不是一个永久的解决方案,如果 UI 线程在其他方面很忙,它可能会导致不稳定的移动,但是这种技术很简单,你可以在比我写这一段的时间更短的时间内编写它。
换句话说,您将鼠标移动增量视为一个向量,并将该向量乘以一个标量值以修改速度。
http://msdn.microsoft.com/en-us/library/system.windows.forms.cursor.position.aspx
根据需要,在事件处理程序中使用布尔标志来确保设置 Cursor.Position 不会触发另一个,即使只是因为将 Cursor.Position 设置为一个新点。
您可能会发现对所有距离使用相同的比例因子是不合适的。例如,将移动乘以因子 2 对于短距离可能是可以的,但对于大增量来说太快了,在这种情况下,查找表或函数将计算所需的因子。
如果您需要降低移动速度,这种技术可能会表现不佳,因为它可能会导致鼠标指针向后跳到其最近移动距离的一小部分。