Удаление прозрачности из цвета

1

В настоящее время я использую этот код для преобразования моей строки RGB в цвет для установки в качестве фона для текстового поля.

 ColorConverter colorConverter = new ColorConverter();
 colorTextBox1.BackColor = (Color)colorConverter.ConvertFromString(displayColor);

Но я получаю эту ошибку, когда запускаю этот код. когда значение displayColor = "#16776960".

An unhandled exception of type 'System.ArgumentException' occurred in System.Windows.Forms.dll
Additional information: Control does not support transparent background colors.

Любая идея о том, как я могу вынести прозрачность из цвета?

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

Теги:
background
colors
textbox

1 ответ

4
Лучший ответ

Элементы управления не поддерживают полупрозрачные цвета, а ваша шестнадцатеричная строка имеет 16 в начале, что является альфа-компонентом. Чтобы применить цвет к элементу управления, вам нужно будет удалить альфа из него.

ColorConverter colorConverter = new ColorConverter();
Color color = (Color)colorConverter.ConvertFromString(displayColor);
color = Color.FromARGB(255, color.R, color.G, color.B);
colorTextBox1.BackColor = color;

Вы также можете просто удалить альфу из строки, если она длиннее 7 символов (6 цветных символов и 1 #)

string hex = "#16776960";
if (hex.Length > 7)
   hex = hex.Remove(1,2);
  • 0
    Ответ компилятора с цветом. Только для чтения.
  • 0
    Могу ли я просто удалить 16 из строки. Если это так, я могу просто удалить второй и третий символ из строки каждый раз.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню