我使用了 .Net 轨迹栏控件。我的轨迹栏点是 0...5...10..15。问题是,当用户滚动轨迹栏时,他们很容易在点之间滚动。但我不想让那个用户只把滚动放在我的显示点上。就像他们只设置了 0,5,10 等。不是他们设置了 6,7,8,9 ......
我将 SmallChanges 属性设置为 5 值。但是他们使用键盘更改而不是鼠标滚动。
您可以通过在 ValueChanged 事件的事件处理程序中覆盖其值来简单地强制 Value 属性为 SmallChange 属性的倍数。像这样:
private void trackBar1_ValueChanged(object sender, EventArgs e) {
var bar = (TrackBar)sender;
if (bar.Value % bar.SmallChange != 0) {
bar.Value = bar.SmallChange * ((bar.Value + bar.SmallChange / 2) / bar.SmallChange);
}
}
请注意,这甚至在用户用鼠标拖动拇指时也有效,就像他使用键盘时的行为一样。我以为这就是你想要的。