У меня есть MdiClient, полученный из Form, и я использую поверхность этого элемента управления для рисования GDI +. У меня возникают проблемы с реализацией собственной прокрутки для этого элемента управления. Я установил для свойств AutoScroll и AutoSize значение false и пытаюсь использовать собственные горизонтальные / вертикальные полосы прокрутки вместо размещения своих собственных. Наблюдаемое поведение формы довольно запутанно. Для начала есть два свойства (A) HScroll и (B) HorizontalScroll, которые также предоставляют доступ к атрибуту Visible.
В итоге я установил HorizontalScroll.Visible = true и оставил HScroll = false (то же самое для вертикали), но мне любопытно, почему их два. Документация подразумевает, что оба контролируют видимость горизонтальной полосы прокрутки, но не имеют доступа к одним и тем же данным. Кроме того, похоже, что HScroll сбрасывается на каждой краске. На данный момент я игнорирую существование HScroll / VScroll. Это нормально для моего приложения?
Что для меня важнее, так это возможность управлять размещением большого пальца на полосах прокрутки. Я установил атрибуты VerticalScroll Minimum = 0, Maximum = 100 и Value = 50, но когда форма отображается, большой палец располагается в начале полосы прокрутки, а не в середине. Зачем? Также, когда пользователь нажимает на горизонтальную полосу прокрутки, вызывается обработчик события для горизонтальной прокрутки, но в то же время форма уже сбросила VerticalScroll.Value в 0 (без повышения события вертикальной прокрутки). Что здесь происходит?
Я, вероятно, не понимаю, как фреймворк ожидает от меня реализации того, что мне нужно. Может кто-нибудь пролить свет.