Что это за контроль?Групповой ящик или нет!
Вопрос
Интересно, как выглядит элемент управления, показанный ниже, прямая линия с меткой рядом с ней.Я попытался найти для него аналогичный элемент управления, но не было ни одной настройки группового поля, поэтому вместо этого я просто создал GroupBox с высотой 2, которая его копирует.
Но есть ли для этого фактический элемент управления или настройки?И как называется фактический контроль?
Решение
Spy ++ сообщает нам, что на самом деле это два отдельных генерировать элементы управления кодом (аналогично генерации кода кода в WinForms).
-
Первый - это обычный статический текстовый элемент управления с надписью «Домашняя страница».
-
Второй имеет набор
STATIC
style , который заставляет его рисовать как трехмерную линию. К сожалению, возможность установить этот стиль не предоставляется нам из WinForms.
Как вы отметили в вопросе, есть некоторые приемы / обходные пути, которые позволяют нам добиться аналогичного вида, например вертикальное сжатие элемента управления Label
или переопределение метода SS_ETCHEDHORZ
элемента управления GroupBox
и использование класса OnPaint
для рисования 3D граница. Они работают, но мне они никогда не нравились.
Но вы можете самостоятельно установить стиль Label
, чтобы можно было точно воспроизвести собственный интерфейс. Вот небольшой класс, который делает именно это. Добавьте его в свой проект, скомпилируйте, и вы должны увидеть новый элемент управления на панели инструментов под названием «HorizontalRule». Используйте его так же, как и любой другой элемент управления!
Вы также можете найти более подробную информацию и дополнительный образец кода здесь, в CodeProject . .
Другие советы
У меня была такая же проблема пару лет назад, и в итоге я просто нарисовал линию для этой цели.
На самом деле я даже использовал одно фиксированное линейное изображение достаточно большой ширины, чтобы его можно было использовать во всех случаях, показывая требуемую часть (ширину) изображения.
С тех пор это решение отлично работает.