1

修改 Winforms 轨迹栏的最简单方法是什么,以便当用户单击它时,轨迹栏会跳转到鼠标的位置?

默认情况下,轨迹栏移动到其当前位置和鼠标单击位置之间的中间位置。

更新:我正在尝试这样做,以便可以在触摸屏上使用轨迹栏。使用触摸屏拖动非常困难,因此要求轨迹栏直接跳转到用户点击的位置。

4

1 回答 1

2

我从来没有做过,但我会先看看鼠标点击的位置。然后我可以计算出点击位置在轨迹栏的当前范围内有多远,并将跟踪器的位置设置为该点。

我将首先研究覆盖控件并操作与鼠标相关的事件函数(OnMouseDown()例如)。请注意,在某些情况下,调用覆盖函数的基类实现可能很重要,请务必根据具体情况进行考虑。(我刚刚遇到了这个问题,所以我觉得很新鲜。)

请注意,如果您有非常令人信服的理由,您应该只以这种方式更改标准控件的行为。它们是标准的,因为它们在数百/数千个程序中以可预测的方式运行。仅仅为你的程序做一些不同的行为可能会违反租约原则。我能想到的唯一一个希望按照您描述的方式运行的轨迹栏是用于某种媒体播放器。

编辑: 根据您的评论,是的,我认为您有一个令人信服的理由。:)

于 2009-04-16T11:40:03.340 回答