カラ―ダイアログでの色取得について への返答

投稿で使用できる特殊コードの説明。(別タブで開きます。)
本名は入力しないようにしましょう。
投稿した後で削除するときに使うパスワードです。返答があった後は削除できません。
返答する人が目安にします。相手が小学生か社会人かで返答の仕方も変わります。
最初の投稿が質問の場合、質問者が解決時にチェックしてください。(以降も追加書き込み・返信は可能です。)
※「過去ログ」について書くときはその過去ログのURLも書いてください。

以下の返答は逆順(新しい順)に並んでいます。

投稿者 魔界の仮面弁士  (社会人) 投稿日時 2010/5/14 10:07:10
> Dim useToArgb As String = Me.ColorDialog1.Color.ToArgb
> と
> Button1.BackColor = Color.FromArgb(useToArgb)
> でうまくいきました。

変数宣言を見なおしてください。

ToArgb プロパティから返されるデータ型は String 型ではありませんし、
FromArgb メソッドに渡すデータの型も、 String 型ではありませんよ。
投稿者 大池  (社会人) 投稿日時 2010/5/13 20:42:54
魔界の仮面弁士 様

早速のご指導ありがとうございます。

 Dim useToArgb As String = Me.ColorDialog1.Color.ToArgb
 と
 Button1.BackColor = Color.FromArgb(useToArgb)
でうまくいきました。
また、過去ログのFontについても大変勉強になりました。
ありがとうございました。
今後ともよろしくお願いいたします。
投稿者 魔界の仮面弁士  (社会人) 投稿日時 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 など)
投稿者 大池  (社会人) 投稿日時 2010/5/12 21:59:52
いつもお世話になりまして感謝しています。
XPでVB2008を勉強しています。
初歩的な質問で恐縮です。

カラ―ダイアログで取得した色をファイルに保存し、これから色を設定しようとしています。

Dim useColor As Color = Me.ColorDialog1.Color
としますと、「色の名前」で表示されるものがあります。
これを「a,r,g,b」で取得するにはどのようにすればいいのでしょうか?
ご教授のほどよろしくお願いいたします。