1

カラーセレクターを作りたいのですが、色を選んだときにカラーコードをテキストボックスに書き込みます。カラー ダイアログとテキスト ボックスを作成しましたが、選択した色から RGB と 16 進コードを作成するにはどうすればよいですか?

このコードを試していますが、問題があります:

TextBox1.Text = ColorDialog1.Color.R + ", " + ColorDialog1.Color.G + ", " + ColorDialog1.Color.B

取得:

タイプ 'System.InvalidCastException' の未処理の例外が Microsoft.VisualBasic.dll で発生しました追加情報: 文字列 ", " からタイプ 'Double' への変換は無効です。

4

2 に答える 2

2

このようなものは、必要なものを取得します...

Dim MyColor = Color.LightGreen

Dim R = MyColor.R
Dim G = MyColor.G
Dim B = MyColor.B

Dim HexString = String.Format("{0:X2}{1:X2}{2:X2}", R, G B)
于 2013-10-26T09:06:58.653 に答える
1

Visual Basic は通常、数値とテキストを組み合わせようとするときに非常に柔軟に対応し、数値を文字列に自動的に変換してステートメントを機能させます。ただし、Color.R、G、および B プロパティは少し特殊で、Byte 型です。そのタイプは、以前のバージョンの VB には存在しませんでした。彼らは自動変換を追加しませんでした。

ここで行う最善の方法は、String.Format() メソッドでサポートされている複合書式設定機能を使用することです。

With ColorDialog1.Color
    Label1.Text = String.Format("{0}, {1}, {2}", .R, .G, .B)
End With

16 進バージョンの場合は、フォーマット文字列を変更するだけです。

    Label1.Text = String.Format("#{0:x2}{1:x2}{2:x2}", .R, .G, .B)
于 2013-10-26T09:43:29.783 に答える