DOBON.NET DOBON.NETプログラミング掲示板過去ログ

カラーダイアログにカスタム色を設定しても黒で表示されていしまいます

環境/言語:[Visual Studio 2002 VB.net]
分類:[.NET]

こんにちは、どなたかcolorDialogに詳しい方初歩的なところでつまずいていると思いますが、お教えください。
colorDialogを表示する時にCustomColorsというのがありますが、ここに色を設定しても、ダイアログの『作成した色』の欄に黒く表示されてしまいます。
カラーダイアログから色の作成をしても結果同じになります。
ところが作成した色のデータはちゃんと設定されているようで、フル画面にして作成した色(真っ黒で表示されている色)の部分をクリックすると、作成した色の座標が正しく右側には示されます。
しかもその色を選択すると、CustomColorsで設定した色を正しく返します。
即ち、作成した色の表示だけがおかしいような状態です。
Dim dlgColor As New System.Windows.Forms.ColorDialog()として
dlgColor.AllowFullOpen = True
dlgColor.FullOpen = True
dlgColor.SolidColorOnly = False
などは、フラグをいじって見ましたが結果は同じでした。
気になるのは、customColorsには、フォームのコントロールのBackColorをもってきていますが、これは全て0以下の値です。
こちらにあるTip集のカラーダイアログでは、データが0以上でサンプルが載っておりましたので、0以上のデータを1個だけ追加すると、これはちゃんと色が出てきます。
0以下が出ないということはARGBのAの部分の最初の1ビットになんか意味があるのかともおもってます。しかし、ダイアログで直接作った色データも黒で表示されているは、ちょっと納得できません。
ネット調べましたがあまり情報がありませんでした。

お手数ですがお助けいただきますようお願いします。
> colorDialogを表示する時にCustomColorsというのがありますが、ここに色を設定しても、ダイアログの『作成した色』の欄に黒く表示されてしまいます。

ニュースグループで同様の記事を見つけましたので、紹介します。

http://groups.google.co.jp/groups?hl=ja&lr=&ie=UTF-8&inlang=ja&selm=J%23DgVXYXDHA.2152%40cpmsftngxa06.phx.gbl
管理人様 ありがとうございます。
ご指定の記事を元に変換用の関数をVBで(^^)作成し、今確認したところです。
ご指導ありがとうございました。なおお返事が遅れましたことをお詫びいたします。

内容はいびつですが、とりあえず実現した関数を載せておきます。

Public Function ColorConvert(ByVal inColor As Integer) As Integer
Dim wColor As New System.Drawing.Color()
wColor = System.Drawing.Color.FromArgb(inColor)
Return (wColor.R + (wColor.G * &H100) + (wColor.B * &H10000))
End Function
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板