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構造体です。