1

我使用了 .Net 轨迹栏控件。我的轨迹栏点是 0...5...10..15。问题是,当用户滚动轨迹栏时,他们很容易在点之间滚动。但我不想让那个用户只把滚动放在我的显示点上。就像他们只设置了 0,5,10 等。不是他们设置了 6,7,8,9 ......

我将 SmallChanges 属性设置为 5 值。但是他们使用键盘更改而不是鼠标滚动。

4

1 回答 1

2

您可以通过在 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);
        }
    }

请注意,这甚至在用户用鼠标拖动拇指时也有效,就像他使用键盘时的行为一样。我以为这就是你想要的。

于 2013-09-05T13:10:03.713 回答