Как сбросить свойство .NET Windows Forms TextBox BackColor?
Поведение свойства по умолчанию BackColor в А TextBox выглядит следующим образом: при включении это White ( SystemColors.Window ), когда отключен, он серый (не уверен, что это за SystemColor).
Если я изменю BackColor свойство, один и тот же цвет используется как для «Включено», так и для «Отключено». Как мне сбросить BackColor свойство (после того, как оно было изменено ранее), чтобы поведение вернулось к значению по умолчанию?
Программирование на C, C# и Java
Уроки программирования, алгоритмы, статьи, исходники, примеры программ и полезные советы
ОСТОРОЖНО МОШЕННИКИ! В последнее время в социальных сетях участились случаи предложения помощи в написании программ от лиц, прикрывающихся сайтом vscode.ru. Мы никогда не пишем первыми и не размещаем никакие материалы в посторонних группах ВК. Для связи с нами используйте исключительно эти контакты: vscoderu@yandex.ru, https://vk.com/vscode
Как поменять цвет фона элементов в Windows Forms
В данной статье мы разберем несколько вариантов изменения цвета элементов Windows Forms на примере фона формы Form1 и прочих компонентов.
Способ №1. Изменение цвета в свойствах элемента.
Для многих это самый легкий способ изменения цветовой палитры элементов, так как не надо писать код, всё визуализировано и интуитивно понятно.
Для этого надо выбрать элемент формы (или саму форму) и в «Свойствах» найти вкладку «Внешний вид». Нас интересует строка BackColor:

Здесь имеется большое количество цветовых схем и их визуальных представлений.



Выберем для примера какой-либо из цветов, чтобы изменить фон формы:


Легко, незамысловато, понятно.
Следующие способы будут производиться в коде.
Способ №2. Изменение цвета, используя структуру Color.
Это самый простой способ среди кодовых вариаций.
«На пальцах» это выглядит так:
Если мы захотим закрасить фон формы в зеленый цвет, то строка кода будет выглядеть вот так:
При запуске форма будет выглядеть так:

Если понадобится изменить цвет, например, кнопки Button на тёмно-бордовый, код будет таким:
Данный способ прост тем, что требуется лишь написать название цвета, которых также большое количество.
Зачастую этих двух способов хватает для оформления программы. Если же нужна более гибкая настройка или же среди стандартных цветов не имеется необходимых, можно воспользоваться способами, описанными ниже.
Способ №3. Изменение цвета, используя метод Color.Argb.
Этот и следующий методы позволят генерировать нужный цвет, используя значения цветового канала RGB.

RGB — это цветовая модель, которая синтезирует цвета, используя смешивание трёх основных цветов (Красного — Red, Зеленого — Green, Синего- Blue) с чёрным, вследствие чего получаются новые цвета и оттенки. Зависит получаемый цвет от интенсивности этих трёх основных цветов. Если смешать Красный, Зеленый и Синий в максимальной насыщенности, получится белый цвет. Если не смешивать их, то остаётся чёрный.
Данный способ позволяет регулировать интенсивность трех этих цветов, при смешивании которых и получится нужный нам оттенок.
Интенсивность в числовой форме для удобства применения обозначается от 0 (минимальная интенсивность) до 255(максимальная интенсивность). Все три цвета можно «варьировать» по этой шкале.
Словесно это выглядит вот так:
Названиеэлементаформы.BackColor = Color.FromArgb(Насыщенность красного, Насыщенность зеленого, Насыщенность синего);
Чтобы закрасить фон программы в чёрный цвет, используя данный метод, надо написать вот такую строку:
как отключить цвет кнопки в С#
У меня есть набор из 5 кнопок, которые я создал в winforms, используя С#, если я нажимаю кнопку 1, она должна изменить цвет на зеленый., Затем, если кнопка 2 нажата, она должна измениться на зеленый., Но кнопка 1 должна изменить свой первоначальный цвет.
но этот код будет беспокойным, если у меня много кнопок. Пожалуйста, помогите мне с этим.
Вы можете создать отдельный обработчик событий и назначить его для события Click всех ваших кнопок:
Как отметил @CharlesMay в комментарии, имейте в виду, что этот код найдет все Button которые являются прямым потомком вашей формы. Есть несколько способов избежать этого:
1. Держите кнопки в контейнере. Например, создайте Panel (скажем, myPanel ) и поместите все эти кнопки на эту панель, а затем переберите элементы управления этой панели:
2. Сохраните активную кнопку в приватном поле. Таким образом, вам вообще не нужно перебирать элементы управления:
Problem with Win Form Transparent BackColor

Hi Guys
I am trying to make the windows Form BackColor Transparent but each time I try to set the BackColor to Transparent property I am encountering with following error message
Property Value is not Valid
Control does not support transparent background colors.
I also tried to add following code into Form1.Designer.cs, InitializeComponent() like :
but I recived the following message
Control does not support transparent background colors.
I already tried to set both BackColor and TransparencyKey to same color like:
but this is not what I am looking for.Can you please let me know how I can change the BackColor to transparent statues?
- 2 Contributors
- 3 Replies
- 5K Views
- 7 Hours Discussion Span
- Latest Post 11 Years Ago Latest Post by skatamatic
Recommended Answers Collapse Answers
I’ve used this snippet before:
Who the hell knows why microsoft decided that by default forms dont support a transparent back color.
All 3 Replies

I’ve used this snippet before:
Who the hell knows why microsoft decided that by default forms dont support a transparent back color.

Thanks skatamatic
This works fine, but can you let me know what is different between this method and setting the BackColor = Color.Lime;
TransparencyKey = Color.Lime;
into same color?
Thanks again for your time

Thanks skatamatic
This works fine, but can you let me know what is different between this method and setting the BackColor = Color.Lime;
TransparencyKey = Color.Lime;
into same color?Thanks again for your time
I don’t think there is a difference. You can, however, use the transperancy key to create a ‘mask’ of parts of the window you want to hide. Say some parts of the window are lime background, others are gray. Setting the key to gray will still leave the lime visible. This can create some fancy looking results (such as the Visual Studio 2010 Splash screen)
Really, this.SetStyle(ControlStyles.SupportsTransparentBackColor, true); is the important part. Actually, I bet you can just set Background = System.Drawing.Color.Transparent after you set this
We’re a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.
Reach out to all the awesome people in our software development community by starting your own topic. We equally welcome both specific questions as well as open-ended discussions.