Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio Visual Basic 2013颜色到代码_Visual Studio - Fatal编程技术网

Visual studio Visual Basic 2013颜色到代码

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”的未处理异常

我想做一个颜色选择器,当选择颜色时,将颜色代码写入文本框。我创建了颜色对话框和文本框,如何从拾取的颜色生成rgb和十六进制代码

我正在尝试此代码,但它有一个问题:

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)