我在这里尝试做的是放下一个像 Windows XP 上的轨迹栏来改变分辨率:( http://puu.sh/7Li5h.png )
我想设置特定的间隔/增量值,如上图所示。目前实际栏下方的线条在那里,但我仍然可以将指针移动到我喜欢的任何地方。这是我当前的代码:
trackBarIP.Minimum = 0;
trackBarIP.TickFrequency = 1000;
trackBarIP.SmallChange = 50;
trackBarIP.LargeChange = 100;
trackBarIP.Maximum = 6300;
我有这个代码来在它旁边的文本框中显示 Trackbar 的当前值:
( http://puu.sh/7Ligk.png )
private void trackBarIP_ValueChanged(object sender, EventArgs e)
{
textBoxIP.Text = trackBarIP.Value.ToString();
}
最佳答案
我知道这是一个很老的帖子,但下面是我的解决方案:
它使用 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)。然后我把这个数字四舍五入,这就是我的“哈希索引”。从这里我可以通过将这个“索引”乘以我的频率来轻松计算正确的哈希值。最后一步是将轨迹栏设置为等于新值。
关于c# - 轨迹栏上的特定值/间隔,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22683260/