Практическое руководство. Приведение размера элемента управления Label в соответствие с его содержимым в Windows Forms
Элемент управления Windows Forms Label может быть однострочным или многострочным, он может быть фиксированным по размеру либо автоматически изменять размер в соответствии с заголовком. Свойство AutoSize помогает менять размер элементов управления в соответствии с размером заголовка, что особенно полезно, если заголовок меняется во время выполнения.
Динамическое изменение размера элемента управления меткой в соответствии с его содержимым
- Для его свойства AutoSize задайте значение true .
Если для AutoSize задано значение false , слова, указанные в свойстве Text, переносятся на следующую строку, если это возможно, но элемент управления не будет увеличиваться.
См. также
- Практическое руководство. Определение клавиш доступа с помощью элементов управления Label в Windows Forms
- Общие сведения об элементе управления Label
- Элемент управления Label
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
Практическое руководство. Приведение размера элемента управления Label в соответствие с его содержимым в Windows Forms
Элемент управления Windows Forms Label может быть однострочным или многострочным, он может быть фиксированным по размеру либо автоматически изменять размер в соответствии с заголовком. Свойство AutoSize помогает менять размер элементов управления в соответствии с размером заголовка, что особенно полезно, если заголовок меняется во время выполнения.
Динамическое изменение размера элемента управления меткой в соответствии с его содержимым
- Для его свойства AutoSize задайте значение true .
Если для AutoSize задано значение false , слова, указанные в свойстве Text, переносятся на следующую строку, если это возможно, но элемент управления не будет увеличиваться.
См. также
- Практическое руководство. Определение клавиш доступа с помощью элементов управления Label в Windows Forms
- Общие сведения об элементе управления Label
- Элемент управления Label
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
Как изменить label в visual studio
Элемент управления Label, как и другие элементы управления, реагирует на нажатия мышью, то есть его можно использовать для запуска подпрограмм, изменения собственных свойств, свойств пользовательской формы и других элементов управления.
Свойства элемента Метка
Свойство | Описание |
---|---|
AutoSize | Автоподбор размера надписи. True – размер автоматически подстраивается под длину набираемой строки. False – размер элемента управления определяется свойствами Width и Height. |
Caption | Текст надписи (заголовок). |
ControlTipText | Текст всплывающей подсказки при наведении курсора на метку. |
Enabled | Возможность взаимодействия пользователя с элементом управления Label. True – взаимодействие включено, False – отключено (цвет текста становится серым). |
Font | Шрифт, начертание и размер текста надписи. |
Height | Высота элемента управления. |
Left | Расстояние от левого края внутренней границы пользовательской формы до левого края элемента управления. |
Picture | Добавление изображения вместо текста метки или дополнительно к нему. |
PicturePosition | Выравнивание изображения и текста в поле надписи. |
TabIndex | Определяет позицию элемента управления в очереди на получение фокуса при табуляции, вызываемой нажатием клавиш «Tab», «Enter». Отсчет начинается с 0. |
TextAlign* | Выравнивание текста надписи: 1 (fmTextAlignLeft) – по левому краю, 2 (fmTextAlignCenter) – по центру, 3 (fmTextAlignRight) – по правому краю. |
Top | Расстояние от верхнего края внутренней границы пользовательской формы до верхнего края элемента управления. |
Visible | Видимость элемента управления Label. True – элемент отображается на пользовательской форме, False – скрыт. |
Width | Ширина элемента управления. |
WordWrap | Перенос текста надписи на новую строку при достижении ее границы. True – перенос включен, False – перенос выключен. |
* При загруженной в надпись картинке свойство TextAlign не работает, следует использовать свойство PicturePosition.
Свойство по умолчанию для элемента Label – Caption, основное событие – Click.
В таблице перечислены только основные, часто используемые свойства надписи. Все доступные свойства отображены в окне Properties элемента управления Label.
Примеры кода VBA с Label
Пример 1
Загрузка элемента управления Label на пользовательскую форму с параметрами, заданными в коде VBA Excel:
Уроки программирования, алгоритмы, статьи, исходники, примеры программ и полезные советы
Как поменять цвет фона элементов в Windows Forms
В данной статье мы разберем несколько вариантов изменения цвета элементов Windows Forms на примере фона формы Form1 и прочих компонентов.
Способ №1. Изменение цвета в свойствах элемента.
Для многих это самый легкий способ изменения цветовой палитры элементов, так как не надо писать код, всё визуализировано и интуитивно понятно.
Здесь имеется большое количество цветовых схем и их визуальных представлений.
Выберем для примера какой-либо из цветов, чтобы изменить фон формы:
Легко, незамысловато, понятно.
Следующие способы будут производиться в коде.
Способ №2. Изменение цвета, используя структуру Color.
Это самый простой способ среди кодовых вариаций.
Если мы захотим закрасить фон формы в зеленый цвет, то строка кода будет выглядеть вот так:
При запуске форма будет выглядеть так:
Если понадобится изменить цвет, например, кнопки Button на тёмно-бордовый, код будет таким:
Данный способ прост тем, что требуется лишь написать название цвета, которых также большое количество.
Зачастую этих двух способов хватает для оформления программы. Если же нужна более гибкая настройка или же среди стандартных цветов не имеется необходимых, можно воспользоваться способами, описанными ниже.
Способ №3. Изменение цвета, используя метод Color.Argb.
Этот и следующий методы позволят генерировать нужный цвет, используя значения цветового канала RGB.
Данный способ позволяет регулировать интенсивность трех этих цветов, при смешивании которых и получится нужный нам оттенок.
Словесно это выглядит вот так:
Названиеэлементаформы.BackColor = Color.FromArgb(Насыщенность красного, Насыщенность зеленого, Насыщенность синего);
Чтобы закрасить фон программы в чёрный цвет, используя данный метод, надо написать вот такую строку:
Я пытаюсь обновить текст внутри метки в Windows Forms, запущенной из консольного приложения, в качестве примера я создал этот код.
Я провел исследование, но мои знания о Windows Forms весьма ограничены, библиотеки для этого уже включены и не являются проблемой.
Что еще мне нужно сделать, чтобы обновить текст или любую другую функцию управления?
4 ответа
Я запускаю это на своем компьютере и работаю.
Если все, что вам нужно, это настройка при запуске, это на самом деле очень просто; как и с любым другим объектом, который вы хотите настроить, предоставьте ему конструктор, который принимает любые аргументы, которые вы хотите использовать для настройки поведения класса. Как, в вашем случае, текст метки.
Здесь нет необходимости в потоке или общении. Установка этой метки из внешнего источника совершенно не нужна. Просто спроектируйте класс формы заранее, с меткой уже на нем , и предоставьте ему собственный конструктор, который принимает строку для надписи.
И в самом классе MyForm :
Кстати . я не уверен, что вы понимаете, что такое «консольное приложение» на самом деле. Любая программа может быть запущена из командной строки, и вполне возможно дать приложению Windows конструктор static void Main(String[] args) , чтобы он принимал параметры командной строки, и, фактически, также как любое другое приложение вы можете изменить тип возвращаемого значения функции Main на int , чтобы он возвращал код выхода после его завершения. Тем не менее, консольное приложение обычно мало используется для отображения форм; как правило, это побеждает цель консольного приложения.
Обновлено :
Вам необходимо создать поток, который запускает форму и позволяет обновлять метки или другие методы формы. Создайте класс с формой в нем.
Обновите код, следуя приведенному ниже аналогичному примеру. Основная суть — создание потоков и метод DoWork (). Вы должны запустить форму в своем собственном потоке, иначе она будет заблокирована. Создайте свой класс MyForm, который наследует от: Form и добавьте функцию updateLabel, которую вы можете вызывать в методе DoWork после создания потока.
Просто добавьте публичную функцию, чтобы изменить существующий ярлык в форме:
И из основной функции вы вызываете эту функцию после создания объекта формы
Будем жить, Маэстро.
Конфигурация компьютера | |
Процессор: Intel Pentium 4 Socket 478 2.26 Ghz/512/533 BOX | |
Материнская плата: ABIT IS7-E2 i865PE+ICH5, S-478 VC 6ch SB Lan ATX 2 DDR 400 | |
Память: PQI DDR 512 Mb, 400 Mhz | |
HDD: SAMSUNG HD103SJ (1000 Гб, SATA) | |
Видеокарта: AGP ATI Radeon X1550 256/128 DDR2 (Palit) | |
Звук: Интегрированный звук | |
Блок питания: ATX Midle Tower CODEGEN 6205-C9 P4, 300W, 27 Ноября 2004 г. | |
CD/DVD: LG DVD-RW, GSA-H30N RBBB (SATA) | |
Монитор: Samsung SyncMaster 223BW(Digital) [NoDB] (HMEQ201792) [21.6″ LCD-TFT Монитор] | |
ОС: Windows XP Professional (SP-3) Russian. Special Edition XP | |
Прочее: Borland C++ Builder 6.0 Enterprise Suite и CodeGear C++ Builder 2009 |
Выводите его как текст, всё равно свойство Caption текстовое. Самый простой способ.
в VC++ нет у label такого свойства
я в принципе нашел примитивное решение
Будем жить, Маэстро.
Конфигурация компьютера | |
Процессор: Intel Pentium 4 Socket 478 2.26 Ghz/512/533 BOX | |
Материнская плата: ABIT IS7-E2 i865PE+ICH5, S-478 VC 6ch SB Lan ATX 2 DDR 400 | |
Память: PQI DDR 512 Mb, 400 Mhz | |
HDD: SAMSUNG HD103SJ (1000 Гб, SATA) | |
Видеокарта: AGP ATI Radeon X1550 256/128 DDR2 (Palit) | |
Звук: Интегрированный звук | |
Блок питания: ATX Midle Tower CODEGEN 6205-C9 P4, 300W, 27 Ноября 2004 г. | |
CD/DVD: LG DVD-RW, GSA-H30N RBBB (SATA) | |
Монитор: Samsung SyncMaster 223BW(Digital) [NoDB] (HMEQ201792) [21.6″ LCD-TFT Монитор] | |
ОС: Windows XP Professional (SP-3) Russian. Special Edition XP | |
Прочее: Borland C++ Builder 6.0 Enterprise Suite и CodeGear C++ Builder 2009 |
Как нет? В Visual C++ нет? Что-то мне мало верится. Это свойство класса, а не редактора кода
котвася если i объявлено как класс System::Int32 то у него есть метод ToString (унаследован от класса Object).
Соответственно
ИО Капитана Очевидности
Если каждый так программы писать будет.
А какое есть?
Нужно свойство в VC++ будет иметь тип CString (стандартный класс строковых объектов)
А все эти char* забудь, как кошмарный сон. Ибо для использования указателей такого типа нужно чётко понимать, какая команда что делает.
В частности, выполнение такого кода будет абсолютно непредсказуемо
——-
Самое совершенное оружие, которым забиты арсеналы богатых и процветающих наций, может легко уничтожить необразованного, больного, бедного и голодного. Но оно не может уничтожить невежество, болезнь, нищету и голод. (Фидель Кастро)
Почему всех осужденных за измену Родине при Сталине реабилитировали при Горбачёве по отсутствию состава преступления? Потому что при Горбачёве измену Родине перестали считать преступлением.
Читайте также:
- 1с документооборот вставить регистрационный штамп
- Как посмотреть цепочку сертификатов в браузере
- Outlook выбрать другое место доставки
- Кпс в 1с что это
- Какая ошибка программирования обычно приводит к переполнению стека во время выполнения программы
Изменение шрифта текста в label в зависимости от объёма (размера) текста
Если вы хотите уменьшить шрифт текста для этого (если текст не помещается):
Float maxSize = 24.0f; label1.Text = "Ваш текст"; label1.Font = new Font(label1.Font.FontFamily, maxSize, label1.Font.Style); while(label1.Width
Отслеживать
ответ дан 14 апр 2019 в 14:03
Ivan Kramarchuk Ivan Kramarchuk
2,163 1 1 золотой знак 13 13 серебряных знаков 31 31 бронзовый знак
Желательно освобождать ресурсы: диспозить ранее созданный шрифт. Или, как вариант, закэшировать шрифты и использовать повторно.
14 апр 2019 в 14:38
@AlexanderPetrov Прошу прощения, а разве он не будет очищен, когда на него перестанет ссылаться существующий объект? Мы же работаем с управляемыми ресурсами?
14 апр 2019 в 14:48
@AlexanderPetrov Я правильно понимаю, что когда хэндлы закончатся, сборщик все равно сработает?
14 апр 2019 в 15:00
Сборка мусора недетерминированна и произойдет она неизвестно когда (а может и вообще никогда не произойти, если памяти хватает). Нужно понимать, что ресурсы есть разные. Например, хендлы операционной системы. На каждый шрифт нужен один хендл. Между тем количество хендлов ограничено (по-моему, десять тысяч на процесс). В итоге хендлов может не хватать на все нужды процесса.