Сообщений 0    Оценка 27        Оценить  
Система Orphus

Баг VS.NET 2003 - панель инструментов в рамке

Автор: Сергей Бакланов
Источник: RSDN Magazine #3-2004
Опубликовано: 05.08.2004
Исправлено: 10.12.2016
Версия текста: 1.0

Никто не защищён от ошибок на сто процентов. Это касается и Visual Studio .NET. VS.NET 2003 неверное отрисовывает ситуацию, когда панель инструментов (ToolBar) попадает на рамку (GroupBox). Это проявляется в виде замены иконки кнопки фрагментами фоновых изображений, соответствующих координатам кнопки. Звучит неясно? Тогда давайте рассмотрим это на рабочем примере. Для этого вам нужно создать новый проект типа Windows Application (выбранный язык программирования значения не имеет). Теперь добавьте на форму элемент GroupBox, а в него поместите компонент ToolBar. Задайте свойству Appearance панели инструментов значение Flat и запустите проект на выполнение. Результат не заставит себя долго ждать: на месте кнопок вы увидите то, что находилось позади формы при её загрузке в соответствующих координатах (рисунок 1). Если добавить кнопки на панель инструментов, то ситуация от этого не изменится: просто все рисунки смешаются. Более того, эти ошибки видны не только в исполняемом приложении, но и в IDE!


Рисунок 1 – Неверное изображение панели инструментов и рамки

Такие чудеса происходят лишь в том случае, если свойство Appearance панели инструментов имеет значение Flat, т. е. если вы оставите это свойство в значении Normal, то все проблемы исчезнут. Но отказ от кнопок стиля Internet Explorer – это не решение проблемы. Это лишь уход от неё. Чтобы искоренить эти баги, достаточно поместить внутрь рамки элемент Panel и задать его свойству Dock значение Fill, чтобы панель полностью заполняла пространство рамки. И только после этого следует размещать панель инструментов так, чтобы она лежала на компоненте Panel. При такой арранжировке все проблемы исчезают как в работающем приложении, так и в IDE.


Эта статья опубликована в журнале RSDN Magazine #3-2004. Информацию о журнале можно найти здесь
    Сообщений 0    Оценка 27        Оценить