2014-03-27 48 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)。然後我把這個數字加起來,這就是我的「散列索引」。從這裏我可以很容易地通過將這個「索引」乘以我的頻率來計算正確的散列。最後一步是設置跟蹤欄等於新值。