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

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

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

Re[3]: Color構造体を#000000形式の文字列に変換したい


(過去ログ 81 を表示中)

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

■48290 / inTopicNo.1)  Color構造体を#000000形式の文字列に変換したい
  
□投稿者/ ユースケ (1回)-(2010/03/31(Wed) 21:36:43)

分類:[VB.NET/VB2005 以降] 

VB2008使用
こんにちは。
Color構造体の内容より、HTMLで使用する色コードの文字列を取得したいのです。
たとえば、Blackの場合は"#000000"、Whiteの場合は"#FFFFFF"といった具合です。
質問は、以下の通りです。
・Color構造体のR, G, Bの値を16進数に変換し、結合すればいいのですが、
 変換にHex関数を使うと、Hex(255)は"FF"となるのでいいのですが、
 Hex(0)とすると、"0"となります。この場合は"00"という値がほしいのですが、
 必ず2桁の16進数を取得するにはどうすればよいでしょうか?
・上記の方法で"#000000"形式の色コードを出せると思いますが、
 もっと簡単にこれを表示する方法はありますでしょうか?
よろしくお願いします。
引用返信 編集キー/
■48291 / inTopicNo.2)  Re[1]: Color構造体を#000000形式の文字列に変換したい
□投稿者/ なちゃ (417回)-(2010/03/31(Wed) 21:54:54)
System.Web.dllにある、System.Web.UI.WebControls.WebColorConverter を使うという手もなくはないです。

引用返信 編集キー/
■48292 / inTopicNo.3)  Re[1]: Color構造体を#000000形式の文字列に変換したい
□投稿者/ 魔界の仮面弁士 (1591回)-(2010/03/31(Wed) 21:56:12)
No48290 (ユースケ さん) に返信
> Color構造体の内容より、HTMLで使用する色コードの文字列を取得したいのです。
ColorTranslator.ToHtml( c ) あるいは
ColorTranslator.ToHtml(Color.FromArgb( c.ToArgb() )) で。

>  Hex(0)とすると、"0"となります。この場合は"00"という値がほしいのですが、
>  必ず2桁の16進数を取得するにはどうすればよいでしょうか?
Dim r As Byte = 0
Dim s As String = r.ToString("x2") '大文字なら X2
引用返信 編集キー/
■48295 / inTopicNo.4)  Re[2]: Color構造体を#000000形式の文字列に変換したい
□投稿者/ 魔界の仮面弁士 (1592回)-(2010/03/31(Wed) 22:12:00)
No48292 (魔界の仮面弁士) に追記
>>Color構造体の内容より、HTMLで使用する色コードの文字列を取得したいのです。
> ColorTranslator.ToHtml( c ) あるいは
> ColorTranslator.ToHtml(Color.FromArgb( c.ToArgb() )) で。

後者では、常に "#000000" 形式で得られますが、
前者は、必ずしも "#000000" 形式になるとは限りません。

HTML 的には <font color="Black"> のような表記も認められるため、
16進数ではなく色名で返される事もあります。

たとえば、Color.LightGray を変換した場合、
後者は "#D3D3D3" となりますが、
前者は "LightGrey" となります(≠"LightGray")。


なお、SystemColors から得た色の場合、前者の結果(色名)と後者の結果(RGB値)は
違う色を意味します。

たとえば、SystemColors.Control を変換した場合、
前者では "buttonface" という文字列となりますが、
後者では、現在の OS 設定に基づく RGB 値に変換されます。
http://goodsearch.jp/ut3/color3.html

HTML をブラウザで表示させている場合、それがシステムカラー名で指定されていれば、
OS の画面設定を変更すると、その要素の色もそれに応じて変わってくれますし、
#000000 形式で指定された場合には、OS 設定に依存せず、常に同じ色で表示されます。
引用返信 編集キー/
■48299 / inTopicNo.5)  Re[2]: Color構造体を#000000形式の文字列に変換したい
□投稿者/ なちゃ (418回)-(2010/04/01(Thu) 01:39:53)
No48291 (なちゃ さん) に返信
> System.Web.dllにある、System.Web.UI.WebControls.WebColorConverter を使うという手もなくはないです。

あーすみません、これはなしで。
ColorTranslatorの方がいいです、

引用返信 編集キー/
■48301 / inTopicNo.6)  Re[3]: Color構造体を#000000形式の文字列に変換したい
□投稿者/ ユースケ (2回)-(2010/04/01(Thu) 05:23:17)
ワー みなさんありがとうございました。
とても勉強になります。
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -