Color.fromArgb不接受整数

时间:2016-11-11 11:35:09

标签: vb.net colors

在visual basic 2015中,函数Color.fromArgb不能接受函数Color.toArgb的整数 它只能接受以下内容:

FromArgb(a As Byte, r As Byte, g As Byte, b As Byte) As Color

我将函数Color.toArgb中的一个整数从颜色dialoge保存到数据库。当我尝试通过函数Color.fromArgb加载和使用它时,它不接受整数作为参数。

ColorDialog1.ShowDialog()
TextBox1.Text = ColorDialog1.Color.ToArgb
TextBox1.ForeColor = ColorDialog1.Color

然后我记得它

TextBox2.ForeColor = Color.FromArgb(TextBox1.Text)

它给出了错误。

有一种简单的方法可以解决这个问题吗?

3 个答案:

答案 0 :(得分:0)

TextBox1.Text将返回一个字符串。首先将其转换为整数。有关详细信息,请参阅此MSDN文章:

Dim number As Integer = Int32.Parse(TextBox1.Text)

然后将数字传递给FromArgb():

FromArgb()已重载。根据{{​​3}},您也可以传入整数:

SolidBrush red = new SolidBrush(Color.FromArgb(120, 255, 0, 0));

如果您正在寻找更简单的选项,您可以执行以下操作:

int transparency = 75;
var transparentColor = Color.FromArgb(transparency, Color.Red);

答案 1 :(得分:0)

这是支持Plutonix的答案的代码示例

Color.FromArgb(CInt(red_txt.Text), CInt(green_txt.Text), CInt(blue_txt.Text))

答案 2 :(得分:0)

我通过使用转换Color.FromArgb

中的整数的函数解决了这个问题
Function IntegerToColor(ByRef RGB As Int32) As Color
    Dim Bytes As Byte() = BitConverter.GetBytes(RGB)
    Dim Alpha As Byte = Bytes(3)
    Dim Red As Byte = Bytes(2)
    Dim Green As Byte = Bytes(1)
    Dim Blue As Byte = Bytes(0)
    Return Color.FromArgb(Alpha, Red, Green, Blue)
End Function

我从另一个答案处理了它,它与我合作