Visual studio Visual Basic 2013颜色到代码
我想做一个颜色选择器,当选择颜色时,将颜色代码写入文本框。我创建了颜色对话框和文本框,如何从拾取的颜色生成rgb和十六进制代码 我正在尝试此代码,但它有一个问题:Visual studio Visual Basic 2013颜色到代码,visual-studio,Visual Studio,我想做一个颜色选择器,当选择颜色时,将颜色代码写入文本框。我创建了颜色对话框和文本框,如何从拾取的颜色生成rgb和十六进制代码 我正在尝试此代码,但它有一个问题: TextBox1.Text = ColorDialog1.Color.R + ", " + ColorDialog1.Color.G + ", " + ColorDialog1.Color.B 获取: Microsoft.VisualBasic.dll中发生类型为“System.InvalidCastException”的未处理异常
TextBox1.Text = ColorDialog1.Color.R + ", " + ColorDialog1.Color.G + ", " + ColorDialog1.Color.B
获取:
Microsoft.VisualBasic.dll中发生类型为“System.InvalidCastException”的未处理异常
其他信息:从字符串“”到类型“Double”的转换无效
像这样的东西会让你得到你需要的
Dim MyColor = Color.LightGreen
Dim R = MyColor.R
Dim G = MyColor.G
Dim B = MyColor.B
Dim HexString = String.Format("{0:X2}{1:X2}{2:X2}", R, G B)
当您尝试组合数字和文本时,VisualBasic通常非常适合,它会自动将数字转换为字符串以使语句正常工作。但是Color.R、G和B属性有点特殊,它们是Byte类型的。这种类型在早期版本的VB中不存在。他们没有添加自动转换 这里最好使用String.Format()方法支持的复合格式功能: 对于十六进制版本,只需更改格式字符串:
Label1.Text = String.Format("#{0:x2}{1:x2}{2:x2}", .R, .G, .B)
如果获得十六进制值,请参见:
Color
具有.A
.R
.G
和.B
α/红色/绿色/蓝色属性。。。所有十六进制值都是转换为十六进制并连接的RGB。
Label1.Text = String.Format("#{0:x2}{1:x2}{2:x2}", .R, .G, .B)