Событие AutoScroll в формах WIndows

У меня есть форма окна с двумя элементами управления, одним элементом управления почтой (Dock = Fill) и элементом управления свойствами (Dock = Right). Для элемента управления свойством задано значение AutoScroll. У него есть несколько расширяемых панелей, и если пользователь расширяет слишком много панелей, высота элемента управления больше, чем высота окна, и я установил свойство AutoScroll для автоматического отображения полос прокрутки в этом случае - это действительно работает. Однако полоса прокрутки нанесена поверх элементов управления свойствами. Полосы прокрутки, конечно, нуждаются в каком-то месте, но я бы хотел, чтобы окно свойств увеличивалось в ширину, пока отображается полоса прокрутки (и, следовательно, немного уменьшает размер основного элемента управления), чтобы полоса прокрутки находилась с правой стороны контроль собственности, который полностью показан.

Вы можете мне намекнуть? Мне нужно изменить некоторые свойства элементов управления? Или есть событие «ScrollBarsShown» или что-то, что я мог бы поймать и вручную увеличить ширину элемента управления свойством?

Большое тебе спасибо!


person Michael Gerbracht    schedule 09.03.2014    source источник
comment
Не могли бы вы опубликовать свой существующий код?   -  person cvraman    schedule 09.03.2014
comment
Что бы вы хотели посмотреть? У меня пока нет кода обработки событий, так как я не смог найти нужное событие, которое запускается. В противном случае у меня есть только код, который автоматически создается, когда я помещаю элементы управления в конструктор - вы бы хотели это увидеть?   -  person Michael Gerbracht    schedule 09.03.2014
comment
Появление полос прокрутки уменьшает клиентский размер формы. Таким образом, возникает событие ClientSizeChanged. Вы наверняка захотите подумать о том, чтобы зарезервировать достаточно места для полосы прокрутки, чтобы она не перекрывала элементы управления, и вы также не получите горизонтальную полосу прокрутки.   -  person Hans Passant    schedule 09.03.2014


Ответы (1)


Поместите эти элементы управления в TableLayoutPanel. Расположение должно быть два столбца, один ряд. Column0 будет установлен на 100%, а Column1 будет иметь AutoSize. Ряд может быть любым.

Затем просто заполните TableLayoutPanel в своей форме.

person DonBoitnott    schedule 09.03.2014