use*_*249 1 c# textbox background colors
目前,我正在使用此代码将 RGB 字符串转换为颜色,以设置为文本框的背景。
ColorConverter colorConverter = new ColorConverter();
colorTextBox1.BackColor = (Color)colorConverter.ConvertFromString(displayColor);
Run Code Online (Sandbox Code Playgroud)
但是当我运行此代码时出现此错误。当 的值为displayColor = "#16776960".
An unhandled exception of type 'System.ArgumentException' occurred in System.Windows.Forms.dll
Additional information: Control does not support transparent background colors.
Run Code Online (Sandbox Code Playgroud)
关于如何从颜色中去除透明度有什么想法吗?
我想要它做的就是使文本框的背景变成这种颜色。
控件不支持半透明颜色,并且您的十六进制字符串16开头有 alpha 分量。要将颜色应用到控件,您需要从中去除 Alpha。
ColorConverter colorConverter = new ColorConverter();
Color color = (Color)colorConverter.ConvertFromString(displayColor);
color = Color.FromARGB(255, color.R, color.G, color.B);
colorTextBox1.BackColor = color;
Run Code Online (Sandbox Code Playgroud)
如果字符串长度超过 7 个字符(6 个颜色字符和 1 个 #),您还可以简单地从字符串中删除 alpha
string hex = "#16776960";
if (hex.Length > 7)
hex = hex.Remove(1,2);
Run Code Online (Sandbox Code Playgroud)