我使用.Net 轨迹栏控件。我的轨迹栏点是 0...5...10..15。
问题是,当用户滚动轨迹栏时,他们很容易在点之间滚动。但我不想让该用户只将滚动条放在我的显示点中。就像他们只设置了 0,5,10 等。而不是他们设置了 6,7,8,9...
我将 SmallChanges 属性设置为 5 值。但他们使用键盘更改而不是鼠标滚动。
您只需在 ValueChanged 事件的事件处理程序中覆盖 Value 属性的值,即可强制 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);
}
}
请注意,这甚至在用户用鼠标拖动拇指时也有效,就像他使用键盘时的行为一样。我以为这就是你想要的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)