如何在Panel中制作滚动条?

时间:2011-03-15 09:32:37

标签: c# winforms gdi+

我有一个Panel,它绘制了不同的Graphics项。

如何在不使用win api的情况下滚动。

如果面板添加到Controls中,但是如果你刚绘制的那样不起作用=(

编辑:

工作,但宽度和高度需要手册

protected override void OnScroll(ScrollEventArgs se)
{
    base.OnScroll(se);
    if (se.ScrollOrientation == ScrollOrientation.VerticalScroll)
    {
        foreach (Platform platform in m_arPlatforms)
        {
            platform.ReLocation(platform.Location.X, platform.Location.Y + (se.OldValue - se.NewValue));
        }
    }
    if (se.ScrollOrientation == ScrollOrientation.HorizontalScroll)
    {
        foreach (Platform platform in m_arPlatforms)
        {
            platform.ReLocation(platform.Location.X + (se.OldValue - se.NewValue), platform.Location.Y);
        }
    }
}

2 个答案:

答案 0 :(得分:1)

正如您在此处看到的那样:Panel Class,面板派生自ScrollableControl,只需将AutoScroll属性设置为true即可生效。

答案 1 :(得分:0)

我不确定我是否完全理解您的问题,但前提是您的AutoScroll正常工作,而您的问题是您自己的绘图代码没有考虑滚动,那么就像调用.TranslateTransform一样简单。 .AutoScrollPosition坐标。