Как сделать полосу прокрутки в панели? - PullRequest
0 голосов
/ 15 марта 2011

У меня есть панель, она рисовала разные графические элементы.

Как прокрутить без использования Win API.

Нужно ли делать, если панель добавлена ​​в Controls, но если вы только что нарисовали, не работает = (

EDIT:

Работа, но требуется ширина и высота manul

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 ]

1 голос
/ 15 марта 2011

как вы можете видеть здесь: Panel Class , панель выводится из ScrollableControl, просто установите в true свойство AutoScroll, и она будет работать.

0 голосов
/ 15 марта 2011

Я не уверен, что полностью понимаю ваш вопрос, но при условии, что у вас правильно работает AutoScroll, и ваша проблема в том, что ваш собственный код рисования не учитывает прокрутку, тогда это так же просто, как вызвать .TranslateTransform скоординаты .AutoScrollPosition.

...