簡體   English   中英

Color.fromArgb 不接受整數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM