我有一个带滚动条的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,面板7最大值为2004。 panel8 HorizontalScroll值为2268。 panel7 HorizontalScroll值为2268。
答案 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
}