2016-11-11 43 views
0

在Visual Basic 2015年功能Color.fromArgb不能接受函數的整數Color.toArgb 它只能接受如下:Color.fromArgb這麼想的接受整數

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

我將Color.toArgb中的整數從顏色對話框保存到數據庫。當我嘗試加載並通過函數Color.fromArgb使用它時,它不接受整數作爲參數。

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

然後我記得

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

提示錯誤。

有沒有簡單的方法來解決這個問題?

+0

你能告訴我們一些代碼,使實際的號碼,以便我們可以嘗試重現該問題? –

+1

確實存在一個過載,它取得了argb值:'Function FromArgb(argb As Integer)' – Plutonix

+0

從color dialoge中通過函數Color.toArgb得到一個整數,然後將它保存到數據庫。 當我嘗試加載並通過函數Color.fromArgb使用它時,它不接受整數作爲參數。 –

回答

0

TextBox1.Text會返回給你一個字符串。首先將其轉換爲整數。看到此MSDN文章細節:

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

然後通過數成FromArgb():

FromArgb()過載。據MSDN,您可以在整數傳遞,以及:

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

如果你正在尋找,你可以這樣做一個簡單的選擇:

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

我保存的整數與-16744448不同,不是3個數字。 –

+0

問題似乎是您將錯誤的類型傳入Color.FromArgb()。答案更新以反映這一點。 – axlj

0

下面是支持Plutonix的答案代碼示例

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

我保存的整數與-16744448不同,不是3個數字。 –

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 

我從另一個答案應付它,它與我的工作

相關問題