c# winform 如何实现16进制颜色值的转换
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# winform 如何实现16进制颜色值的转换相关的知识,希望对你有一定的参考价值。
在winform里面 我想把一个"#CE76D1"这样的颜色值赋给textbox的backcolor,请问如何转化呢?怎么写、、、、
也就是说 如何把""#CE76D1"这样的一个颜色表示值转化为Color对象?
谢谢。。。
我和你说一下#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的方式表示,你可以按照上面的方法编写一个类来实现它们之间的转换。
希望能帮到你,大家互相学习 参考技术A 代码如下:
Color c=Color.FromArgb(0,Convert.ToInt32("CE",16),Convert.ToInt32("76",16)Convert.ToInt32("D1",16));
//这里的CE、76和D1可以用String的Substring方法取得 参考技术B 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); 参考技术C 九级的是正解,二级那个也对。
呵呵。不过最简单的是最好的。
我一开始也用fromARGB()方法。。。 参考技术D 可以用ColorTranslator.Fromhtml,如下
textbox.BackColor = ColorTranslator.FromHtml("#CE76D1");本回答被提问者和网友采纳
c# winform 如何取得用户控件中 的值
请问 在窗体中包含一个用户控件,我怎么获取用户控件中的值到窗体的文本框中啊?
用户控件中的值是我自己写的一个属性,该属性是通过点击空间中的按钮才会有值的。
大体是这样的 ,点击窗体文本框---显示用户控件---点击用户控件上的按钮生成一个值---窗体文本框显示用户控件的属性值。
请问该怎么处理?
很着急,高手帮忙解决。万分感激。成功+200分;
public partial class UserControl1 : UserControl
private string m_Value = "";
public event EventHandler OnValueChanged;
public string Value
get return this.m_Value;
set
this.m_Value = value;
if (OnValueChanged != null)
OnValueChanged(this, new EventArgs());
public UserControl1()
InitializeComponent();
private void button1_Click(object sender, EventArgs e)
this.Value = "TEST";
在窗体中使用添加的事件
this.userControl11.OnValueChanged += new System.EventHandler(this.userControl11_OnValueChanged);
在事件触发时调用自定义控件的属性就可以了
private void userControl11_OnValueChanged(object sender, EventArgs e)
this.textBox1.Text = this.userControl11.Value;
又是新建工程,新建用户控件的,记得给加分啊,呵呵
不懂再联系我 参考技术A 你那个用户控件应该有个接口吧,即让窗体进行调用,这个接口可以返回一个值啊 参考技术B this.TextBox1.Text = this.UserControl1.属性名;
以上是关于c# winform 如何实现16进制颜色值的转换的主要内容,如果未能解决你的问题,请参考以下文章
JavaScript随机生成颜色以及十六进制颜色 与RGB颜色值的相互转换
C++如何将使用16进制表达的颜色色彩RGB字符串转化为整型或者浮点型表达?(颜色转换色彩转换)