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

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

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.94190 の関連記事表示

<< 0 >>
■94190  Re[7]: カラーコード(文字列)から色に変換したい
□投稿者/ 魔界の仮面弁士 -(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桁」形式しか認めない方針とするならば、
    正規表現検査を加えた上で、不正な値の場合の着色方針を定める必要があるかもしれません。
記事No.94172 のレス /過去ログ163より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -