c# winform 如何实现16进制颜色值的转换

在winform里面我想把一个"#CE76D1"这样的颜色值赋给textbox的backcolor,请问如何转化呢?怎么写、、、、也就是说如何把""#CE76D1"这样的... 在winform里面 我想把一个"#CE76D1"这样的颜色值赋给textbox的backcolor,请问如何转化呢?怎么写、、、、
也就是说 如何把""#CE76D1"这样的一个颜色表示值转化为Color对象?
谢谢。。。
展开
 我来答
帐号已注销
2009-12-31 · TA获得超过260个赞
知道小有建树答主
回答量:85
采纳率:0%
帮助的人:62.1万
展开全部
不知道有没有直接提供这种color结构的转换,MSDN上也没有发现这种使用方式,但是可以直接使用RGB来表示:

我和你说一下#CE76D1到RGB的转换吧,希望能帮助你:
16进制表示颜色值:CE76D1=>Red:CE Green:76 Blue:D1
只需将其转换为10进制就可以了,方法如下:
16进制中 C=12;D=13;E=14
转换为10进制:
Red:CE=C*16+E=12*16+14=206
Green:76=7*16+6=118
Blue:D1=13*16+1=209
所以#CE76D1转换为RGB后为:206 118 209
然后可以用以下方式:
this.textbox.BackColor = System.Drawing.Color.FromArgb(206,118,209);
就能实现你的想法了,当然你完全可以用PS等软件直接得到RGB值,如果你一定要使用#CE76D1的方式表示,你可以按照上面的方法编写一个类来实现它们之间的转换。

希望能帮到你,大家互相学习
discovery522
推荐于2016-03-31 · TA获得超过4714个赞
知道大有可为答主
回答量:2308
采纳率:71%
帮助的人:1498万
展开全部
代码如下:

Color c=Color.FromArgb(0,Convert.ToInt32("CE",16),Convert.ToInt32("76",16)Convert.ToInt32("D1",16));

//这里的CE、76和D1可以用String的Substring方法取得
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
JimiXu
2009-12-31 · TA获得超过410个赞
知道小有建树答主
回答量:1010
采纳率:0%
帮助的人:0
展开全部
Color c=Color.FromArgb(0,Convert.ToInt32("CE",16),Convert.ToInt32("76",16)Convert.ToInt32("D1",16));
这里的CE、76和D1你可以用String的Substring方法取得
--------------------------
有个更简单的写法
UInt32 num=Convert.ToUint32("#CE76D1".Replace("#","0x"));
Color aColor=Color.FromArgb(0,(int)num>>16&0xff,(int)num>>8&0xff,(int)num&0xff);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
songme2000
2009-12-31 · TA获得超过269个赞
知道小有建树答主
回答量:590
采纳率:0%
帮助的人:421万
展开全部
九级的是正解,二级那个也对。

呵呵。不过最简单的是最好的。

我一开始也用fromARGB()方法。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dkxpsg
推荐于2018-03-04 · TA获得超过1627个赞
知道小有建树答主
回答量:592
采纳率:0%
帮助的人:1039万
展开全部
可以用ColorTranslator.FromHtml,如下
textbox.BackColor = ColorTranslator.FromHtml("#CE76D1");
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式