Как прокрутить элемент управления StatusStrip в VB.NET WinForms? - PullRequest
0 голосов
/ 18 декабря 2011

Есть ли способ прокрутки в StatusStrip, когда его элементы управления превышают область просмотра формы?Моя StatusStrip действует как панель задач с большим количеством меток (действующих как кнопки), которые, если их слишком много, могут выйти за пределы экрана.

1 Ответ

4 голосов
/ 18 декабря 2011

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

Вы можете подумать, что это довольно неуместно, но я упоминаю об этом по причине,Существует огромное преимущество в разработке приложений, которые соответствуют соглашениям вашей платформы и, следовательно, ожиданиям вашего пользователя.Эти приложения гораздо легче написать (нарушать правила всегда сложнее, чем следовать им), и пользователям намного легче понять и использовать.

Весьма вероятно, что даже при наличии полосы прокрутки пользователи никогда не найдути используйте его, потому что они не ожидают , чтобы найти полосу прокрутки в элементе управления строки состояния.Я конечно не был бы.Я искал там информацию, которую ожидал найти, не нашел ее и разочаровался.Как и большинство пользователей, я бы не стал читать документацию, чтобы понять, что мне нужно прокручивать то, что никогда не прокручивается.Я бы просто пришел к выводу, что у вашего приложения плохой пользовательский интерфейс, и покончим с этим.

И на самом деле, несмотря на то, что вы и я, как программисты , могли бы подумать о типичном [тупом] пользователе,Я как типичный тупой пользователь был бы совершенно прав!Ваше приложение имеет плохой пользовательский интерфейс, потому что оно нестандартное и сложное в использовании.Это то, что многие программисты не понимают или не ценят, но это чрезвычайно важно.

Поэтому я очень рекомендую пересмотреть дизайн пользовательского интерфейса вашего приложения.Основное внимание (и просто общий хороший дизайн) должно быть направлено на то, чтобы жизненно важная информация отображалась или была доступна несколько мест, а не только в строке состояния.Другой вариант - отобразить меньше этой информации в строке состояния.Как и в случае с проводником Windows, вы должны автоматически скрывать менее важную информацию, когда уменьшается доступная площадь экрана, и отображать ее больше, когда у вас есть для этого место.Сделайте окно обозревателя очень маленьким, и вы увидите только самые необходимые элементы в строке состояния.

Но если вы решите проигнорировать весь этот совет и пропустить то, что уже решили, продолжайте читать... Элемент управления StatusStrip наследуется от ScrollableControl, что означает, что он обладает такими свойствами, как AutoScroll и HScroll.Но документация указывает, что такими свойствами являются:

Инфраструктура.Это свойство не относится к этому классу.

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

Возможно, более простое решение - прикрепить элемент управления Panel внизусвою форму, а затем поместите StatusStrip элемент управления внутри этого Panel.Убедитесь, что вы установили свойство AutoScroll контейнера Panel, и оно должно автоматически развернуться (с полосами прокрутки) для отображения всего элемента управления StatusStrip.

...