我想使用与 Panel.AutoScroll 为 true 时相同的功能,但滚动条不可见。
为了做到这一点,我需要知道如何使用代码中的函数向左/向右/向上/向下滚动。
你应该能够使用组件的VerticalScroll和HorizontalScroll属性:
c.HorizontalScroll.Value += 100;
c.VerticalScroll.Value = c.VerticalScroll.Maximum;
如果您不想使用 Autoscroll 属性,有一种方法是我很久以前用过的。
这种方法简单易行并且效果非常好。
面板上可能有一个属性可以实现这个功能,或者您可以循环遍历所有面板子元素并调整它们的位置。
例如,将所有控件移动10像素:
int xoffset = 10;
foreach(Control c in panel1.Controls)
c.Location.X += xoffset;
控件可以移动到负位置,使它们移出面板,同样地,它们可以具有比面板尺寸更大的位置值,以使它们移出面板。
var v = ScrollingPanel.VerticalScroll;v.Value = v.Value = Math.Min(v.Maximum, v.Value + v.LargeChange);
,否则滚动条在面板移动时实际上不会移动。由于某种原因,在绘制滚动条之前,值会再次更改,但第二次设置将更新它。 - Patrick