3

我在这里要做的是放下一个类似于 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();
}
4

1 回答 1

4

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

它使用 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)。然后我将这个数字四舍五入,这就是我的“哈希索引”。从这里我可以通过将此“索引”乘以我的频率轻松计算正确的哈希值。最后一步是将轨迹栏设置为等于新值。

于 2017-04-04T03:52:41.033 回答