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

わんくま同盟

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

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

■94193 / 9階層)  カラーコード(文字列)から色に変換したい
□投稿者/ 魔界の仮面弁士 (2632回)-(2020/03/24(Tue) 16:07:15)
No94191 (あい さん) に返信
>>(3) 色情報の値検査を行う必要がありますか?
> できれば常に「# + 16進数6桁」形式しか認めない方針としたいです。

DataGridView のテキストセルへの直接入力であれば、
検証用のイベントが用意されています。
https://dobon.net/vb/dotnet/datagridview/cellvalidating.html


> カラーダイアログボックスで選択された値はRGB値にしているのですが、
> これは「# + 16進数6桁」ではないですよね(-_-;)

どうやって RGB 値にしているかが記されていないので、
正しいか間違っているかは判断できません…。


(1) Color → Alpha, Red, Green, Blue の個別要素の Byte 群
 Color の A, R, G, B プロパティ

(2) Color → &HAARRGGBB な Integer
 Color の ToArgb() メソッド

(3) Color → &HBBGGRR な Integer
 ColorTranslator の ToWin32(color) メソッド

(4) Color → "#RRGGBB" 形式の文字列 もしくは "Magenta" や "activeborder" などの定義済み色名
 ColorTranslator の ToHtml(color) メソッド

(5) Color → システムカラーは &H800000XX な Integer、それ以外は &HBBGGRR な Integer
 ColorTranslator の ToOle(color) メソッド

(6) Color → 元の Color 構造体に復元可能な文字列
 ColorConverter の ConvertToInvariantString(color) メソッド

(7) Color → 元の Color 構造体に復元可能な文字列
 Color の Name プロパティ


上記の逆変換はこうなります。

(1) … Color の FromArgb(a, r, g, b) メソッド ※ Alpha 値が 255 固定の場合に限り、FromArgb(r, g, b) でも可
(2) … Color の FromArgb(argb) メソッド
(3) … ColorTranslator の FromWin32(win32Color) メソッド
(4) … ColorTranslator の FromHtml(win32Color) メソッド
(5) … ColorTranslator の FromOle(win32Color) メソッド
(6) … ColorConverter の ConvertToInvariantString(win32Color) メソッド
(7) … Color の FromName(color) メソッド


=====
Color を (1)、(2)、(3) の方法で変換した場合、SystemColors を既知色に復元することができません。
Color を (4)、(5) の方法で変換した場合、Alpha 値は処理できません。(Transparent 等をのぞき、すべて不透明色扱い)
編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←Re[8]: カラーコード(文字列)から色に変換したい /あい →Re[10]: カラーコード(文字列)から色に変換したい /魔界の仮面弁士
→Re[10]: カラーコード(文字列)から色に変換したい /あい
 
上記関連ツリー

カラーコード(文字列)から色に変換したい / あい (20/03/23(Mon) 17:24) #94172
Re[1]: カラーコード(文字列)から色に変換したい / 魔界の仮面弁士 (20/03/23(Mon) 19:33) #94174
  └ Re[2]: カラーコード(文字列)から色に変換したい / あい (20/03/24(Tue) 08:53) #94179
    └ Re[3]: カラーコード(文字列)から色に変換したい / 魔界の仮面弁士 (20/03/24(Tue) 08:56) #94180
      └ Re[4]: カラーコード(文字列)から色に変換したい / あい (20/03/24(Tue) 10:02) #94181
        └ Re[5]: カラーコード(文字列)から色に変換したい / 魔界の仮面弁士 (20/03/24(Tue) 10:39) #94183
          └ Re[6]: カラーコード(文字列)から色に変換したい / あい (20/03/24(Tue) 13:38) #94188
            └ Re[7]: カラーコード(文字列)から色に変換したい / 魔界の仮面弁士 (20/03/24(Tue) 14:14) #94190
              └ Re[8]: カラーコード(文字列)から色に変換したい / あい (20/03/24(Tue) 15:17) #94191
                └ カラーコード(文字列)から色に変換したい / 魔界の仮面弁士 (20/03/24(Tue) 16:07) #94193 ←Now
                  ├ Re[10]: カラーコード(文字列)から色に変換したい / 魔界の仮面弁士 (20/03/24(Tue) 16:19) #94195
                  └ Re[10]: カラーコード(文字列)から色に変換したい / あい (20/03/24(Tue) 16:16) #94194
                    └ Re[11]: カラーコード(文字列)から色に変換したい / 魔界の仮面弁士 (20/03/24(Tue) 16:40) #94198
                      └ Re[12]: カラーコード(文字列)から色に変換したい / あい (20/03/26(Thu) 08:54) #94225
                        └ Re[13]: カラーコード(文字列)から色に変換したい / 魔界の仮面弁士 (20/03/26(Thu) 10:17) #94226
                          └ Re[14]: カラーコード(文字列)から色に変換したい / あい (20/03/26(Thu) 10:32) #94227
                            └ Re[15]: カラーコード(文字列)から色に変換したい / 魔界の仮面弁士 (20/03/26(Thu) 10:47) #94228
                              └ Re[16]: カラーコード(文字列)から色に変換したい / あい (20/03/26(Thu) 11:07) #94230
                                └ Re[17]: カラーコード(文字列)から色に変換したい / 魔界の仮面弁士 (20/03/26(Thu) 11:15) #94231
                                  └ Re[18]: カラーコード(文字列)から色に変換したい / あい (20/03/26(Thu) 11:25) #94232
                                    └ Re[19]: カラーコード(文字列)から色に変換したい / 魔界の仮面弁士 (20/03/26(Thu) 11:36) #94233
                                      ├ Re[20]: カラーコード(文字列)から色に変換したい / あい (20/03/26(Thu) 13:10) #94238
                                      └ Re[20]: カラーコード(文字列)から色に変換したい / あい (20/03/26(Thu) 13:17) #94240 解決済み
                                        └ Re[21]: カラーコード(文字列)から色に変換したい / あい (20/03/26(Thu) 13:19) #94241
                                          └ Re[22]: カラーコード(文字列)から色に変換したい / あい (20/03/26(Thu) 13:19) #94242 解決済み

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信