RGBColorCode

VB.NET - WindowsカラーコードからRed, Green, Blue 別カラーコードに分ける方法

 ColorDialog インターフェースを用いて取得したカラーコードはColor構造体に収められています。ほとんどの色処理はこの Color構造体で情報のやり取りしますが、特殊な処理、例えば RichTextBox の Rtf テキストを直接操作するときなどの場合は R, G, B 別のコードを必要とします。この場合は変換が必要になります。その方法を記します。

 まず、次のようにしてColorDialog1 からWindowsカラーコードを取得するとしよう。Color構造体 System.Drawing.Color には プロパティ Color.R, Color.G, Color.BがあってそれぞれにR, G, B別のカラーコードが得られます。
 そこでこれらを使って RichTextBox のカラーテーブルを組み立てることができます。それぞれのカラーコードを文字列化したとき、先頭に空白が1つ ずつ付きますから、カラーテーブルに組み込むときはそれらを取り除く操作が必要になります。


    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles cmdSetColor.Click
        Dim myColor As New System.Drawing.Color
        Dim ColorTable, Red, Green, Blue As String

        If ColorDialog1.ShowDialog() = DialogResult.OK Then
            myColor = ColorDialog1.Color
            Red = Str(myColor.R) : Red = Microsoft.VisualBasic.Right(Red, Len(Red) - 1)
            Green = Str(myColor.G) : Green = Microsoft.VisualBasic.Right(Green, Len(Green) - 1)
            Blue = Str(myColor.B) : Blue = Microsoft.VisualBasic.Right(Blue, Len(Blue) - 1)
            ColorTable = "\red" & Red & "\green" & Green & "\blue" & Blue
            MsgBox(ColorTable)
        End If
    End Sub

ここに myColor はColor構造体です。
[SoftLandの入り口へ]