我正在传递一个十六进制值到我的 QueryString 中。我希望将其转换为一种颜色,以便在网格视图中的单元格中使用 ForeColor。尝试使用 System.Drawing.ColorTranslator.FromHtml()
和 System.Drawing.Color.FromArgb()
,但都没有成功。
我的 QueryString 已进行 url 编码,因此重要部分如下:
QueryString...&color=%23AA4643
以下是我尝试使用 .FromArg 的方式:
string sColor = Request.QueryString["color"]; // sColor is now #AA4643
Int32 iColorInt = Convert.ToInt32(sColor,16); //Get error message - Could not find any recognizable digits
Color curveColor = System.Drawing.Color.FromArgb(iColorInt); //Never makes it here
以下是我尝试使用.FromHtml的方法:
string sColor = Request.QueryString["color"];
System.Drawing.Color myColor = new System.Drawing.Color();
myColor = System.Drawing.ColorTranslator.FromHtml(sColor);
在此情况下,myColor被设置为 - myColor =“{Name = ffaa4643,ARGB =(255,170,70,67)}”
但当我尝试使用它时,出现错误:
索引超出范围。必须是非负数且小于集合大小的值。 参数名:索引
非常感谢任何和所有的帮助。
System.Drawing.ColorConverter oConverter = new System.Drawing.ColorConverter();``Color myColor = (Color)oConverter.ConvertFromString(sColor);
- RichP