При создании прокручиваемых пользовательских элементов управления с помощью .NET и WinForms я неоднократно сталкивался с ситуациями, когда, например, всплывала вертикальная полоса прокрутки, перекрывая содержимое элемента управления, в результате чего также требовалась горизонтальная полоса прокрутки. В идеале содержимое должно немного сжиматься, чтобы освободить место для вертикальной полосы прокрутки.
Мое текущее решение заключалось в том, чтобы просто держать элементы управления вне крайних правых 40 пикселей или около того, чтобы вертикальная полоса прокрутки занимала место. Поскольку это все еще фактически клиентское пространство для элемента управления, горизонтальная полоса прокрутки все еще появляется, когда она закрывается вертикальной полосой прокрутки, даже если никакие элементы управления не скрываются вообще. Но тогда, по крайней мере, пользователю фактически не нужно использовать появляющуюся горизонтальную полосу прокрутки.
Есть ли лучший способ заставить все это работать? Каким образом уберечь ненужные и нежелательные полосы прокрутки от отображения?