Полосы прокрутки ScrollableControl всегда возвращаются к нулю - PullRequest
2 голосов
/ 11 августа 2011

надеюсь, это легко!

Я наследую от UserControl, и я переопределяю OnPaint. Я хочу, чтобы этот элемент управления был прокручиваемым, но все, что я хочу, - это иметь возможность получать значения полос прокрутки и определять, где рисовать все сам. Я настроил следующее:

// How the hell do I get this scrolling to not return to zero?
this.Scroll += new ScrollEventHandler(TimelineControl_Scroll);

this.HorizontalScroll.Enabled = true;
this.HorizontalScroll.Visible = true;
this.HorizontalScroll.Minimum = 0;

this.VerticalScroll.Enabled = false;
this.VerticalScroll.Visible = true;

this.AutoScroll = false;

Я вижу новое значение позиции прокрутки. Однако полосы прокрутки всегда возвращаются к нулю. Что я делаю не так?

1 Ответ

3 голосов
/ 11 августа 2011

Я не могу перепроектировать то, что пытается сделать этот код.AutoScroll ваш друг.Вот пример:

public partial class UserControl1 : UserControl {
    public UserControl1() {
        InitializeComponent();
        this.SetStyle(ControlStyles.ResizeRedraw, true);
        this.AutoScroll = true;
        this.AutoScrollMinSize = new Size(1000, 0);
    }
    protected override void OnScroll(ScrollEventArgs se) {
        base.OnScroll(se);
        this.Invalidate();
    }
    protected override void OnPaint(PaintEventArgs e) {
        e.Graphics.TranslateTransform(this.AutoScrollPosition.X, this.AutoScrollPosition.Y);
        e.Graphics.DrawLine(Pens.Black, 0, 0, 1000, this.ClientSize.Height);
        base.OnPaint(e);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...