【问题标题】:How to use track bar with different data representation?如何使用具有不同数据表示的轨迹栏?
【发布时间】:2019-04-15 07:34:54
【问题描述】:

问题是如何从轨迹栏获取数据,如十六进制数字。 我需要的是:在骑行侧获取 1 到 64 的值,而在另一侧(-1 到 -64)将是表示从 81 到 E4 的数据的数据。
我将我的轨迹栏设置为最小 -64 和最大 64,并将默认值设置为 0。 我的计划是使用 If 条件如下:

if (trackBar1.Value <= -1)
{
    PM = trackBar1.Value; //any magic code to convert my value
}
else
{
    PM = trackBar1.Value;
}

有什么方法可以做到吗?

【问题讨论】:

  • 对不起,我看不到数据转换的模式,81到E4??编写 64 个 switch-case 语句:)
  • 是的,听起来不错。我会暂时使用!感谢供应! :D
  • 当然,如果负值应该是从 0x81 到 0xE4,那么PM = 0xE5 + trackBar1.Value?

标签: c# hex data-conversion trackbar


【解决方案1】:

如果我正确理解了您的问题,那么您有一个轨迹栏,其值从 -64 到 +64。 当 trackbar 值低于 0 时,您希望返回 0x81 到 0xE4 的数字,而当 trackbar 值高于 0 时,您希望正常返回 1 到 64 的数字。

在这种情况下,这是一个简单的情况,根据值是低于 0 还是高于 0 来执行不同的计算:

if (trackBar1.Value <= -1)
{
    PM = 0xE5 + trackBar1.Value;
}
else
{
    PM = trackBar1.Value;
}

如果值低于 0,这会将负值添加到 0xE5,这将为您提供 0x81 到 0xE4 范围内的适当值。

【讨论】:

    【解决方案2】:

    对我来说正确的方法是:

    PM = Convert.ToByte(trackBar1.Value);
    

    感谢大家的帮助。 :-)

    【讨论】:

      猜你喜欢
      • 2013-11-07
      • 1970-01-01
      • 1970-01-01
      • 2014-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多