如何根据C#中的鼠标事件来移动跟踪栏?
题
这可能是N00B查询。我有需要根据鼠标下降事件更改跟踪栏值的地方。我实现了以下内容:
private void MoveTrackBarToMouseClickLocation(TrackBar a_tBar, int a_mouseX)
{
// Jump to the clicked location
double dblValue;
dblValue = ((double)a_mouseX / (double)a_tBar.Width) * (a_tBar.Maximum - a_tBar.Minimum);
a_tBar.Value = Convert.ToInt32(dblValue);
}
该部分正常工作。在按下鼠标按钮时,我很难使滚动工作正常工作。例如,如果我单击跟踪栏,我需要说鼠标向下说50值,我希望能够在该鼠标向下时向右或向左滚动(从值= 50)。
我希望我已经清楚了我的小问题。任何帮助都将受到赞赏。谢谢
解决方案
您需要在 MouseMove
事件, ,以及 MouseDown
事件。
当鼠标移动时发生此事件 尽管 其中一个按钮被固定下来。相反, MouseDown
您当前处理的事件只有每次按下鼠标按钮时就会升高。这就是为什么 TrackBar
当用户移动鼠标时不会移动,但是在第一次按下按钮时正常工作。
您没有显示您将事件处理程序连接到的代码和/或致电 MoveTrackBarToMouseClickLocation
功能,这是我所能获得的。但是,如果您设法将 MouseDown
事件已经是一个简单的解决方案。
不隶属于 StackOverflow