我在我的 QueryString 中传递了一个十六进制值。我想将其转换为一种颜色,以便在网格视图的单元格中使用 ForeColor。都试过了System.Drawing.ColorTranslator.FromHtml()
,System.Drawing.Color.FromArgb()
没有运气。
我的 QueryString 是 urlencoded 所以重要的部分看起来像:
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)}"
但是当我去使用它时,我得到一个错误:
指数超出范围。必须是非负数且小于集合的大小。参数名称:索引
非常感谢任何和所有帮助