繁体   English   中英

轨道栏上的特定值/间隔

[英]Specific values/intervals on a Trackbar

我在这里尝试做的是放下像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#轨迹栏和“Scroll”事件。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM