型の変換について

タグの編集
投稿者 root2  (中学生) 投稿日時 2008/11/29 03:30:32
色のデータをテキストファイルに保存したり、テキストファイルから色のデータを読み出すプログラムを制作しています。
しかし、String型とSystem.Drawing.Color型の相互変換がうまく出来ません。
どのようにすればよいのか教えて下さい。よろしくお願いします。
投稿者 あにす  (社会人) 投稿日時 2008/11/29 03:41:27
System.Drawing.Color.FromArgb()
System.Drawing.Color.ToArgb()
を使ってみてはいかがでしょうか?
Public Class Form1
    Dim argb As String

    Private Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles Button1.Click
        If Me.ColorDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
            argb = Me.ColorDialog1.Color.ToArgb().ToString()
        End If
    End Sub

    Private Sub Button2_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles Button2.Click
        Me.BackColor = Color.FromArgb(Integer.Parse(argb))
    End Sub
End Class
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2008/11/29 05:02:14
FromArgb/ToArgb でも処理できますが、それだと、
システムカラー(SystemColors.ActiveCaption 等)を正しく復元できないので、
ColorConverter クラスを使用した方が良いかも知れません。

http://rucio.bbs.coocan.jp/?m=listthread&t_id=159&summary=on


この他、XmlSerializer 等でシリアライズするという手もありますが、
こちらは今回の要件には向かないかな…。
投稿者 root2  (中学生) 投稿日時 2008/12/2 03:23:48
ありがとうございます。
うまく実行できました。