[英]Color.fromArgb dosen't accept integer
在 Visual Basic 2015 中,函數 Color.fromArgb 不能接受函數 Color.toArgb 的整數,它只能接受以下內容:
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)
它給出了錯誤。
有沒有簡單的方法來解決這個問題?
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);
這是一個支持 Plutonix 答案的代碼示例
Color.FromArgb(CInt(red_txt.Text), CInt(green_txt.Text), CInt(blue_txt.Text))
我通過使用從 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
我從另一個答案中解決了它,它對我有用
如果它不起作用,請刪除 alpha 參數
Public Shared 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)
Return Color.FromArgb(Red, Green, Blue)
End Function
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.