这可能是一个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)。
我希望我能清楚地解决我的小问题。 任何帮助表示赞赏。 感谢
答案 0 :(得分:2)
您需要在MouseMove
event以及MouseDown
事件中执行您的代码。
当移动鼠标时按下其中一个按钮时会发生此事件。相反,每次按下鼠标按钮时,您当前处理的MouseDown
事件只会被提升一次。这就是为什么当用户移动鼠标时TrackBar
没有移动,但是在第一次按下按钮时工作正常。
您没有显示连接事件处理程序和/或调用MoveTrackBarToMouseClickLocation
函数的代码,因此这是我可以获得的具体内容。但是,如果您已设法将MouseDown
事件连接起来,这应该是一个简单的修复。