2014-07-10 79 views
0

我有这样的代码:麻烦肤色C#

 int converted = Convert.ToInt32(value); 
     string hexValue = converted.ToString("X"); 
     Color color = System.Drawing.ColorTranslator.FromHtml("#" + hexValue); 
     return color; 

那得到 “12222222” 字符串,并将其转换为C#的颜色。 但我得到这个字符串“255”,我不知道如何处理这个。任何人都可以谈一谈这个奇怪的数字吗?

感谢

更新 忘了提:在示范项目他功能工作与价值=“255”。在我的项目 - doenst。

+1

为什么你认为255是奇怪吗? –

+0

什么是“价值”?你能指望什么? –

+0

值是字符串,“12222222”女巫的作品,“255”女巫没有。任何想法为什么? –

回答

0

尝试

string hexValue = converted.ToString("X8"); 

,这将保证有在hexValue

+0

或X6,如果你想要6个字符等 – MikeW

0

8个字符,如果你想一个整数intInt32)转换为Color,你可以简单地使用:

// value is an integer in this case 
Color color = Color.FromArgb(value); 

无需将其转换为十六进制字符串。

如果你想转换小数StringColor只需使用:

int value = Int32.Parse(decimalString); 
Color color = Color.FromArgb(value); 

,如果你想转换一个十六进制StringColor

int value = Int32.Parse(hexString, NumberStyles.HexNumber); // System.Globalization 
Color color = Color.FromArgb(value); 
+0

Color.FromArgb不接受一个字符串作为参数,它出现的问题是值为 – MikeW

+0

很好地更新了答案,以涵盖所有的基础......尽管该操作仍然没有阐明他的“价值”变量是什么 – MrPaulch