从颜色中删除透明度

目前我正在使用此代码将我的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. 

关于如何从颜色中获取透明度的任何想法?

我想要它做的只是使文本框的背景颜色。

控件不支持半透明颜色,并且您的hex字符串在开头有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; 

如果长度超过7个字符(6个颜色字符和1个字符),您也可以简单地从字符串中删除alpha

 string hex = "#16776960"; if (hex.Length > 7) hex = hex.Remove(1,2);