【问题标题】:C# error : Value should be between minimum and maximumC# 错误:值应介于最小值和最大值之间
【发布时间】:2013-05-22 14:33:17
【问题描述】:

我有 2 个带有滚动条的面板。我试图只使用一个滚动条同时滚动两个面板。但是我收到此错误:

Value of '2268' is not valid for 'value'.'Value' should be between 'minimum' and maximum'
Parameter name: Value.

在其中一个面板的滚动事件中,我使用了以下代码:

     private void panel8_Scroll(object sender, ScrollEventArgs e)
        {
            panel8.HorizontalScroll.Maximum = panel7.HorizontalScroll.Maximum;
            panel7.HorizontalScroll.Value = panel8.HorizontalScroll.Value;
        }

我需要 panel8 上的滚动条来控制面板 7 和 8 的滚动

编辑: 面板 8 最大值为 13175,面板 7 最大值为 2004。 panel8 Horizo​​ntalScroll 的值为 2268。 panel7 Horizo​​ntalScroll 值为 2268。

【问题讨论】:

  • “panel8.Horizo​​ntalScroll.Maximum”、“panel7.Horizo​​ntalScroll.Maximum”、“panel7.Horizo​​ntalScroll.Value”和“panel8.Horizo​​ntalScroll.Value”的值是多少?
  • 我猜你已经超过了为面板设置的最大值,你能发布这些值吗?
  • 您说 panel7 的最大值是 2004,但您试图将其设置为 2268。2268 > 2004。面板 8 应该如何控制面板 7?你在寻找一个比率即。如果面板 8 在中间,那么面板 7 应该在中间吗?

标签: c# winforms .net-4.0


【解决方案1】:

假设您希望面板 7 与面板 8 处于相同的相对位置,然后执行此操作

private void panel8_Scroll(object sender, ScrollEventArgs e)
{
    var p8Max = panel8.HorizontalScroll.MaxValue
    var p8Min = panel8.HorizontalScroll.MinValue
    var p7Max = panel7.HorizontalScroll.MaxValue
    var p7Min = panel7.HorizontalScroll.MinValue 
    var ratio = panel8.HorizontalScroll.Value/(p8Max-p8Min)
    var absoluteValue = ratio * (p7Max-p7Min)
    panel7.HorizontalScroll.Value = p7Min + absoluteValue
}

【讨论】:

  • 您可能还需要考虑 MinValue。一般来说,它会是 0,但以防万一有人调整它......
  • @ErnodeWeerd 很好,特别是因为在这种情况下它没有被指定为零
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-07-16
  • 1970-01-01
  • 1970-01-01
  • 2011-12-04
  • 1970-01-01
  • 1970-01-01
  • 2015-03-28
相关资源
最近更新 更多