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

わんくま同盟

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

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

■94190 / 7階層)  カラーコード(文字列)から色に変換したい
□投稿者/ 魔界の仮面弁士 (2631回)-(2020/03/24(Tue) 14:14:40)
2020/03/24(Tue) 14:17:52 編集(投稿者)

No94188 (あい さん) に返信
> 何個かデータがあるうちの一つのセルに、カラーコードのデータを表示しています。
> ------------------------------------
> データ1|データ2|データ3|色表示
> ------------------------------------
>     |    |    |#d7e4bd
> ------------------------------------
>     |    |    |#ffcc66
> ------------------------------------

(1) 上記のどこを着色したいのでしょうか?

たとえば「3 列目だけ」に色をつけたいのであれば、
CellFormatting イベントで 「e.ColumnIndex の値が 3 だった時」にのみ
e.CellStyle を調整するようなコードにすれば OK です。
調整が不要なセルの場合は、何も変更せずに Return してください。


(2) DataGridView 上に "#d7e4bd" という文字列は見えていた方が良いですか? 見えていない方が良いですか?

見えている必要がある場合は、該当セルのスタイルで、
前景色と背景色が同色もしくは近似色にならないようにしておきましょう。

見えている必要が無いのなら、そもそも [BACKGROUND] フィールドを DataGridView の列に
バインドする必要はありません。先のサンプルでも示したように、
イベント内からは DataBoundItem 経由で、DataTable 上の
[BACKGROUND] フィールドにアクセスできるためです。

 Dim gridRow = DirectCast(sender, DataGridView).Rows(e.RowIndex)
 Dim rowView As DataRowView= TryCast(gridRow.DataBoundItem, DataRowView)
 If rowView IsNot Nothing Then
   Dim oColor As Object = rowView("BACKCOLOR")
   'Dim row As DataRow = rowView.Row
   'Dim table As DataTable = row.Table
 End If


(3) 色情報の値検査を行う必要がありますか?

ColorTranslator.FromHtml() の場合、
たとえば "#ffcc66" の他、"#fc6" 形式の省略表記、
"LightSalmon"、"SandyBrown" などの Web カラー名や、
"InfoBackground" や "ThreeDDarkShadow" などのシステム名も扱えます。

もし、常に「# + 16進数6桁」形式しか認めない方針とするならば、
正規表現検査を加えた上で、不正な値の場合の着色方針を定める必要があるかもしれません。
編集キー/

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

カラーコード(文字列)から色に変換したい / あい (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
            └ カラーコード(文字列)から色に変換したい / 魔界の仮面弁士 (20/03/24(Tue) 14:14) #94190 ←Now
              └ Re[8]: カラーコード(文字列)から色に変換したい / あい (20/03/24(Tue) 15:17) #94191
                └ Re[9]: カラーコード(文字列)から色に変換したい / 魔界の仮面弁士 (20/03/24(Tue) 16:07) #94193
                  ├ 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 解決済み

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