【发布时间】:2008-11-04 17:07:35
【问题描述】:
我想使用 Panel.AutoScroll 为 true 时可用的相同功能,但滚动条不可见。
为此,我需要知道如何使用代码中的函数向左/向右向上/向下滚动。
【问题讨论】:
我想使用 Panel.AutoScroll 为 true 时可用的相同功能,但滚动条不可见。
为此,我需要知道如何使用代码中的函数向左/向右向上/向下滚动。
【问题讨论】:
你应该可以使用组件的 VerticalScroll 和 HorizontalScroll 属性:
c.HorizontalScroll.Value += 100;
c.VerticalScroll.Value = c.VerticalScroll.Maximum;
【讨论】:
var v = ScrollingPanel.VerticalScroll;v.Value = v.Value = Math.Min(v.Maximum, v.Value + v.LargeChange);,否则滚动条实际上不会在面板移动时移动。由于某种原因,该值在绘制滚动条之前会变回,但第二次设置它会更新它。
好吧,如果您不想使用 Autoscroll 属性,有一种我很久以前使用的方法。
它很简单,而且效果很好。
【讨论】:
面板上可能有一个属性可以执行此操作,或者您可以遍历所有子面板并调整它们的位置。
例如。将所有控件移动 10 像素:
int xoffset = 10;
foreach(Control c in panel1.Controls)
c.Location.X += xoffset;
控件可以移动到负位置以使它们移出面板,同样它们可以具有大于面板大小的位置值以使它们移出面板。
【讨论】: