2014-03-27 39 views
2

我想在这里做的是放下了跟踪条像在Windows XP上的一个改变分辨率:(http://puu.sh/7Li5h.png具体价值/间隔跟踪条

我想设置如特定的时间间隔/增量值在上面的图片中。目前实际酒吧下方的线条在那里,但我仍然可以将指针移动到任何我喜欢的位置。这是我当前的代码:

trackBarIP.Minimum = 0; 
trackBarIP.TickFrequency = 1000; 
trackBarIP.SmallChange = 50; 
trackBarIP.LargeChange = 100; 
trackBarIP.Maximum = 6300; 

我有这样的代码显示在文本框中跟踪条的当前值旁边:

http://puu.sh/7Ligk.png

private void trackBarIP_ValueChanged(object sender, EventArgs e) 
{ 
    textBoxIP.Text = trackBarIP.Value.ToString(); 
} 
+0

每当跟踪栏值的值发生变化时,获取该值并查看它是否等于您想要的增量值之一,如果不将值更改为最接近的增量值?防爆。如果你增加了10,并且值改变为12,那么将值设置为10. – AnotherUser

+0

这就是我最终做的,是的。我猜不是它应该工作的方式,但这是做这个工作。 – Droes

回答

1

我知道这是一个非常旧的帖子,但下面是我的解决方案:

它使用Visual Studio 2013中的C#轨迹条和“滚动”事件。

 zoomTrackBar.Minimum = 25; 
     zoomTrackBar.Maximum = 400; 
     zoomTrackBar.Value = 100; 
     zoomTrackBar.TickFrequency = 25; 
    } 
    #endregion 

    private void zoomTrackBar_Scroll(object sender, EventArgs e) 
    { 
     int value = (sender as TrackBar).Value; 
     double indexDbl = (value * 1.0)/zoomTrackBar.TickFrequency; 
     int index = Convert.ToInt32(Math.Round(indexDbl)); 

     zoomTrackBar.Value = zoomTrackBar.TickFrequency * index; 

     label2.Text = zoomTrackBar.Value.ToString(); 
    } 

它所做的就是取当前选定的值并将其除以频率,散列标记(在本例中为25)。然后我把这个数字加起来,这就是我的“散列索引”。从这里我可以很容易地通过将这个“索引”乘以我的频率来计算正确的散列。最后一步是设置跟踪栏等于新值。