如何移动TrackBar以响应C#中的鼠标事件?

时间:2010-12-23 06:18:12

标签: c# .net winforms mousemove trackbar

这可能是一个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)。

我希望我能清楚地解决我的小问题。 任何帮助表示赞赏。 感谢

1 个答案:

答案 0 :(得分:2)

您需要在MouseMove event以及MouseDown事件中执行您的代码。

移动鼠标时按下其中一个按钮时会发生此事件。相反,每次按下鼠标按钮时,您当前处理的MouseDown事件只会被提升一次。这就是为什么当用户移动鼠标时TrackBar没有移动,但是在第一次按下按钮时工作正常。

您没有显示连接事件处理程序和/或调用MoveTrackBarToMouseClickLocation函数的代码,因此这是我可以获得的具体内容。但是,如果您已设法将MouseDown事件连接起来,这应该是一个简单的修复。