0

我有一个我有 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 的滚动

编辑:panel8 最大值为 13175,panel 7 最大值为 2004。panel8 Horizo​​ntalScroll 值为 2268。panel7 Horizo​​ntalScroll 值为 2268。

4

1 回答 1

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
}
于 2013-05-22T06:27:09.023 回答