C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

System.Drawing.Color


(過去ログ 5 を表示中)

[トピック内 9 記事 (1 - 9 表示)]  << 0 >>

■5799 / inTopicNo.1)  System.Drawing.Color
  
□投稿者/ asuka 二等兵(9回)-(2006/08/22(Tue) 11:28:47)

分類:[C#] 


分類:[C#] 

自前のダイアログボックスやボタンのBackColorやForeColorを自由に変更するアプリを作成しています。

カラー選択ダイアログから選択された色をBackColorやForeColorに設定して色を変えていまして、その情報をファイルに保存してます。

カラー選択ダイアログのカラープロパティをToString()としてファイルに書いているのですが、↓
colorDialogColor.Color.ToString()

実際に書かれたファイルを見ると以下のようになっております。
Color [A=255, R=0, G=255, B=128]



これを次回プログラム起動時に読み込んで前回変えたままの色で表示したいのですが、実現方法が分かりません。

プログラム起動時にLoadイベント内でファイルから文字列(Color [A=255, R=0, G=255, B=128])を読み込み、

button1.BackColor = (System.Drawing.Color)sb.ToString()

のようにしているのですがコンパイルが通りません。

INIファイルに保存しているので読み込んだ文字列はstring型ではなくStringBuilder型です。



どなたか実現方法をお知りの方教えて頂ければと思います。


0
引用返信 編集キー/
■5801 / inTopicNo.2)  Re[1]: System.Drawing.Color
□投稿者/ 特攻隊長まるるう 一等兵(24回)-(2006/08/22(Tue) 11:41:01)

分類:[C#] 

書式が決まってるなら、数値部分を取り出して
System.Drawing.Color.FromArgb
でも使えば System.Drawing.Color にできるよね?
…ま、それを使うなら
> カラー選択ダイアログのカラープロパティをToString()としてファイルに書いているのですが、
をもっと数値が読み取りやすいように変更するだろうけど。。。

ToString をそのまま使用して、メソッド一個で変換
してくれるような方法をお求めなら、そう書いておきましょう。
…ボクは知りませんが。。。


0
引用返信 編集キー/
■5808 / inTopicNo.3)  Re[2]: System.Drawing.Color
□投稿者/ まどか 中佐(216回)-(2006/08/22(Tue) 13:27:16)

分類:[C#] 

> button1.BackColor = (System.Drawing.Color)sb.ToString()

↑色に文字を設定しちゃってますよ〜

> System.Drawing.Color.FromArgb
>
> をもっと数値が読み取りやすいように変更するだろうけど。。。

Fromがあるってことは。。。ということでしょう。

いずれにしろColorクラスのメンバ一覧を参照してください。

0
引用返信 編集キー/
■5813 / inTopicNo.4)  Re[3]: System.Drawing.Color
□投稿者/ asuka 二等兵(10回)-(2006/08/22(Tue) 13:58:53)

分類:[C#] 

レスありがとうございます。

そもそもcolorDialogColor.Color

の中身に何があるのか分からなかったので文字列で出力したんですが、

Color [A=255, R=255, G=255, B=128]のような形式で書かれると場合は

特攻隊長まるるうさんおっしゃるとおり、数値の部分だけをうまくパースして保存すればいいと思います。

その後教えていただいたSystem.Drawing.Color.FromArgbを使用すればうまくいきそうな気がします。

ところが、Color [Aqua]のような形式の場合もあるので困ってます。


0
引用返信 編集キー/
■5818 / inTopicNo.5)  Re[4]: System.Drawing.Color
□投稿者/ 特攻隊長まるるう 一等兵(28回)-(2006/08/22(Tue) 14:42:04)

分類:[C#] 

No5813に返信(asukaさんの記事)
> ところが、Color [Aqua]のような形式の場合もあるので困ってます。
保存の処理を変えて良いなら、
 Color.A プロパティ
 Color.R プロパティ
 Color.G プロパティ
 Color.B プロパティ
…から取り出せば良いのでは?
"Aqua" という文字列を使わないといけない理由は?
そろそろ ToString から離れたらどう?

> いずれにしろColorクラスのメンバ一覧を参照してください。
アドバイスもらったのに確かめないの???
コードを選択して[F1]キーを押せばヘルプが見れませんか?
メンバ一覧のページ見れば、いくらでも使えそうなものがある
というのに。
[Color メンバ]
http://msdn2.microsoft.com/ja-jp/library/system.drawing.color_members.aspx

0
引用返信 編集キー/
■5820 / inTopicNo.6)  Re[5]: System.Drawing.Color
□投稿者/ 特攻隊長まるるう 一等兵(29回)-(2006/08/22(Tue) 15:23:58)

分類:[C#] 

>> をもっと数値が読み取りやすいように変更するだろうけど。。。
> Fromがあるってことは。。。ということでしょう。
オイラいじわるになってるかなぁ???(><)
いきなり ToArgb って言っても直感的に AARRGGBB が分からないと
また説明しなきゃいけないから、お茶を濁したんですがw
理解できてるなら ToArgb 使ったらいいと思う。
System.Drawing.Color c;
c = System.Drawing.Color.AliceBlue;
MessageBox.Show(c.A.ToString() + "," + c.R.ToString() + "," + c.G.ToString() + "," + c.B.ToString());
MessageBox.Show(c.ToArgb().ToString());


# C#初めて書いたw。面倒臭ぇ。やっぱ回答つけるのはVBのみだなぁ。。。( _)_


0
引用返信 編集キー/
■5822 / inTopicNo.7)  Re[6]: System.Drawing.Color
□投稿者/ asuka 二等兵(11回)-(2006/08/22(Tue) 15:34:57)

分類:[C#] 

どうもすいません。

もちろんクラスのメンバの一覧は見てます。^^;

最低限見てますが頭が悪くて理解が出来ないのです。



と、いろいろとガシャガシャやってたら出来ました。

System.Drawing.Color.FromArgb()というものを教えて頂いたので、

保存形式はA,R,B,Gの4つに別けて保存しました。

で、整数の形で取り出して

button1.BackColor = System.Drawing.Color.FromArgb( uA, uR, uG, uB )

のようにして実現できました。



何度もすいません。

VC++は6年くらいやってるのですが、C#はここ一ヶ月なんもので^^;

一応MSDNやらメソッドの一覧は見てますが、どうにもこうにも…



まどかさん 特攻隊長まるるうさんありがとうございました。


解決済み
引用返信 編集キー/
■5823 / inTopicNo.8)  Re[7]: System.Drawing.Color
□投稿者/ 渋木宏明(ひどり) 二等兵(4回)-(2006/08/22(Tue) 15:58:17)
渋木宏明(ひどり) さんの Web サイト

分類:[C#] 

> 保存形式はA,R,B,Gの4つに別けて保存しました。

保存/復帰だけが目的なら、それでもまだまどろっこしいような。

Color color;

が定義済みだとして、

int c = color.ToArgb();

で 32bit 整数化してそれを保存、復帰する時は

int c;

に 32bit 整数値を読みこんで

COlor color = Color.FromArgb (c);

でよろしんじゃないでしょうか。


0
引用返信 編集キー/
■5824 / inTopicNo.9)  Re[8]: System.Drawing.Color
□投稿者/ asuka 二等兵(12回)-(2006/08/22(Tue) 16:10:26)

分類:[C#] 

うわあ・・・

そんなステキに簡単な方法は僕の頭じゃ思いもつけませんでした…

それにします。笑



解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -