3

QueryStringで16進値を渡しています。グリッドビューのセルで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)}"に設定されます。

しかし、それを使用しようとすると、エラーが発生します。

インデックスが範囲外でした。負ではなく、コレクションのサイズよりも小さい必要があります。パラメータ名:インデックス

ありとあらゆる助けが大いに感謝します

4

1 に答える 1

8

これを試して:

string sColor = Request.QueryString["color"]; // sColor is now #AA4643
Int32 iColorInt = Convert.ToInt32(sColor.Substring(1),16); 
Color curveColor = System.Drawing.Color.FromArgb(iColorInt); 
于 2012-12-06T16:31:04.263 に答える