2011-02-04 2 views
0

У меня есть форма, которая содержит один элемент управления: панель, которая намного больше, чем сама форма. Таким образом, панель прокрутки формы используется для навигации по этой панели. Autoscroll property формы: true. Проблема заключается в следующем: после отображения любого диалогового окна установлено значение AutoscrollPosition. Как я могу переопределить это поведение, чтобы сохранить положение прокрутки.Нежелательная автоматическая прокрутка к началу формы

+0

почему ты пользуешься формами автопрокрутки почему бы не использовать Автопрокрутку на панели в –

+0

@Shekhar_Pro Поскольку форма может быть изменена и два свитка появится, что нежелательно. – Peter17

+0

ok его winforms ... u не упомянули, что раньше ... –

ответ

2

Вы можете переопределить это, вручную установив прокрутку pos в свой код. Просто используйте активированные и деактивированные события формы.

Посмотрите здесь для ответа на таком же проблему и кодекса

https://stackoverflow.com/questions/2020938/why-does-scrolling-position-change-after-refocusing-the-form/2022561#2022561

+0

Спасибо за ответ и полезную ссылку. Но, как ни странно, события, активированные и деактивированные, запускаются только при выборе другого окна в приложении MDI. Но показывать диалоги не вызывает эти события. Я проверил его следующим кодом: Деактивировать + = (s, e) => { MessageBox.Show («Деактивировано»); }; Активировано + = (s, e) => { MessageBox.Show ("Активировано"); }; – Peter17

+0

, вы не можете сделать это так, как вы его тестируете, например, помещая код выше в форму, и таким образом вы получаете только деактивировать событие, никогда не активизируя событие, так как MessageBox крадет фокус (это доказывает, что поле Message вызывает деактивацию события) и, таким образом, деактивация формы. Чтобы правильно протестировать его, проверите его с помощью события нажатия кнопки, отображающего окно сообщения –

+0

@Micha, я только что проверил его, и открытие диалогового окна (я попробовал OpenFileDialog) делает форму деактивированной. поэтому код в ссылке моего ответа должен работать. –

Смежные вопросы