3

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

我希望我已经把我的小问题说清楚了。任何帮助表示赞赏。谢谢

4

1 回答 1

2

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

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

您没有显示连接事件处理程序和/或调用MoveTrackBarToMouseClickLocation函数的代码,所以这是我能得到的那样具体。但是,如果您已经设法连接MouseDown事件,这应该是一个简单的修复。

于 2010-12-23T07:15:37.880 回答