是否有某种方法可以(暂时)阻止用户通过拖动滑块来更改TrackBar的值?我发现的唯一方法是将Enabled
属性设置为false,但也会使轨迹栏变灰。System.Windows.Forms.Trackbar - 如何防止用户拖动滑块?
编辑: 由于I'm越来越为什么我不应该这样做,而不是它是如何能够做到这一点更多的答案,我决定来解释为什么我会喜欢这样做。我不使用它允许用户
调整某些应用属性的值,但显示和一些行动控制进展。想象一下,例如你最喜欢的媒体播放器 - 它可能包含一些控制(我称之为trackbar,但英语不是我的母语,所以它可能是错误的) 显示它正在播放的电影的部分,但也可以让你控制它 - 及时向后或向前移动并观察不同的部分。
我以这种方式使用跟踪栏 - 我不知道任何其他组件会更好(Progressbar不会允许我更改“位置”)。它工作正常, 我唯一想做的事情是不让用户“使用trackbar,除非电影暂停”。
由于这个原因,我在Delphi 6中多次使用过trackbar组件,但是当它被禁用时它并没有变灰,在我看来它工作正常。这就是为什么我在这里询问 是否有可能在C#中实现相同的效果。
我不想灰色的跟踪栏,因为在我看来,灰色组件是不活跃的...这不是我的情况,我的跟踪栏总是活动的,有时只是用户无法修改它的值,因为它是以编程方式修改的......使用'ValueChanged'事件是个不错的主意,尽管当我尝试移动滑块时滑块有时会“闪烁”,并立即返回到正确的位置 - 这就是为什么我想以某种方式防止用户移动滑块在所有...但无论如何感谢很多! – 2010-08-05 12:19:24
所以我想没有其他方式比'ValueChanged'事件,所以我接受你的答案...再次感谢... – 2010-08-06 07:25:03
我不知道是否启用双缓冲将有助于减少闪烁?或者,也可以通过GDI +创建自己的自定义控件,除非特别启用,否则不会接受用户输入。 – Xander 2010-09-13 09:18:37