我在这里尝试做的是放下一个像 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/

10-12 14:21