カラ―ダイアログでの色取得について
投稿者 魔界の仮面弁士  (社会人)
投稿日時
2010/5/12 23:13:00
Color 構造体は Serializable 属性が付与されていますので、
そのまま BinaryFormatter などで永続化できます。
あるいは、ここの過去ログにもあるように、ColorConverter クラスを使って
処理することもできます。
http://rucio.bbs.coocan.jp/?m=listthread&t_id=159&summary=on
また、ARGB 値への変換には Color 構造体自体の ToArgb メソッドや
A プロパティ、B プロパティ、G プロパティ、R プロパティを使う事ができます。
なお、HTML 形式などへの変換のために、ColorTranslator クラスも用意されています。
なお非システムカラーの場合には、その ARGB 値が常に固定的なので、
Color.Empty
A=00, R=00, G=00, B=00
Color.Transparent
A=00, R=ff, G=ff, B=ff
Color.Red
A=ff, R=ff, G=00, B=00
Color.Green
A=ff, R=00, G=80, B=00
Color.Lime
A=ff, R=00, G=ff, B=00
Color.Blue
A=ff, R=00, G=ff, B=ff
として表現できますが、変換元の色がシステムカラーであった場合は、
ARGB 化する事が好ましくないケースもありますので御注意ください。
(たとえば SystemColors.Control や SystemColors.Desktop など)
そのまま BinaryFormatter などで永続化できます。
あるいは、ここの過去ログにもあるように、ColorConverter クラスを使って
処理することもできます。
http://rucio.bbs.coocan.jp/?m=listthread&t_id=159&summary=on
また、ARGB 値への変換には Color 構造体自体の ToArgb メソッドや
A プロパティ、B プロパティ、G プロパティ、R プロパティを使う事ができます。
なお、HTML 形式などへの変換のために、ColorTranslator クラスも用意されています。
なお非システムカラーの場合には、その ARGB 値が常に固定的なので、
Color.Empty
A=00, R=00, G=00, B=00
Color.Transparent
A=00, R=ff, G=ff, B=ff
Color.Red
A=ff, R=ff, G=00, B=00
Color.Green
A=ff, R=00, G=80, B=00
Color.Lime
A=ff, R=00, G=ff, B=00
Color.Blue
A=ff, R=00, G=ff, B=ff
として表現できますが、変換元の色がシステムカラーであった場合は、
ARGB 化する事が好ましくないケースもありますので御注意ください。
(たとえば SystemColors.Control や SystemColors.Desktop など)
投稿者 大池  (社会人)
投稿日時
2010/5/13 20:42:54
魔界の仮面弁士 様
早速のご指導ありがとうございます。
Dim useToArgb As String = Me.ColorDialog1.Color.ToArgb
と
Button1.BackColor = Color.FromArgb(useToArgb)
でうまくいきました。
また、過去ログのFontについても大変勉強になりました。
ありがとうございました。
今後ともよろしくお願いいたします。
早速のご指導ありがとうございます。
Dim useToArgb As String = Me.ColorDialog1.Color.ToArgb
と
Button1.BackColor = Color.FromArgb(useToArgb)
でうまくいきました。
また、過去ログのFontについても大変勉強になりました。
ありがとうございました。
今後ともよろしくお願いいたします。
投稿者 魔界の仮面弁士  (社会人)
投稿日時
2010/5/14 10:07:10
> Dim useToArgb As String = Me.ColorDialog1.Color.ToArgb
> と
> Button1.BackColor = Color.FromArgb(useToArgb)
> でうまくいきました。
変数宣言を見なおしてください。
ToArgb プロパティから返されるデータ型は String 型ではありませんし、
FromArgb メソッドに渡すデータの型も、 String 型ではありませんよ。
> と
> Button1.BackColor = Color.FromArgb(useToArgb)
> でうまくいきました。
変数宣言を見なおしてください。
ToArgb プロパティから返されるデータ型は String 型ではありませんし、
FromArgb メソッドに渡すデータの型も、 String 型ではありませんよ。
XPでVB2008を勉強しています。
初歩的な質問で恐縮です。
カラ―ダイアログで取得した色をファイルに保存し、これから色を設定しようとしています。
Dim useColor As Color = Me.ColorDialog1.Color
としますと、「色の名前」で表示されるものがあります。
これを「a,r,g,b」で取得するにはどのようにすればいいのでしょうか?
ご教授のほどよろしくお願いいたします。