none
Enabled = falseなコントロールの色 RRS feed

  • 質問

  • 毎度お世話様です。

     

    例えばGridViewで一覧表示した際にCheckBoxが灰色で表示されています。これをCheckBoxにバインドされている

    値に応じて色を変えたいのですが可能でしょうか。一覧表示しているだけなのでEnabled=falseのままで行いたいのです。

     

     

    よろしくお願いします。

    2008年3月18日 6:04

回答

  • HTMLの世界の話になります。ブラウザによっても表現が異なってしまいます。

     

    IEですとレイヤーを重ねる方法があります。上のレイヤーにチェックボックスを配置し、そのレイヤーを半透明することによって下のレイヤーの色を透過させ、あたかもチェックボックスに色が付いているように見せかけます。

    ただし、これをGridView内のCheckBoxでやるには一筋縄ではいかないと思います。

     

    他の方法としては、チェックボックスに似せたものを表示する方法があります。イメージでも良いでしょうし、TextBoxにレを表示したものでもそれっぽく見えると思います。どのみちReadOnlyなCheckBoxということですから、こちらの方法で実現されたらいかがでしょうか? CheckBoxに拘る必要はないんじゃないかと思います。

    2008年3月20日 10:42
    モデレータ

すべての返信

  • 1.そのCheckBox列をテンプレート列に変更します。

     

    2.GridViewのスマートタグより「テンプレートの編集」

     

    3.CheckBoxのスマートタグで、「DataBindingsの編集」

     

    4.「すべてのプロパティの表示」にチェック

     

    5.バインド可能プロパティよりBackColorを選択

     

    6.カスタムバインドを選択して、以下のように記述

      SetCheckBoxBackColor(Eval("バインドしている列名"))

     

    7.次のコードを作成

     

    public System.Drawing.Color SetCheckBoxBackColor(object sex)

    {

        if ((bool)sex)

            return System.Drawing.Color.Azure;

        else

            return System.Drawing.Color.Salmon;

    }

     

    #追記 3/19 9:54 修正

    2008年3月18日 16:20
    モデレータ
  • これだとCheckBoxの背景色がかわりますよね。チェックボックス本体の色(あるいはチェックボックス内のチェック自体)
    の色をコントロールできませんでしょうか。
    2008年3月20日 3:55
  • HTMLの世界の話になります。ブラウザによっても表現が異なってしまいます。

     

    IEですとレイヤーを重ねる方法があります。上のレイヤーにチェックボックスを配置し、そのレイヤーを半透明することによって下のレイヤーの色を透過させ、あたかもチェックボックスに色が付いているように見せかけます。

    ただし、これをGridView内のCheckBoxでやるには一筋縄ではいかないと思います。

     

    他の方法としては、チェックボックスに似せたものを表示する方法があります。イメージでも良いでしょうし、TextBoxにレを表示したものでもそれっぽく見えると思います。どのみちReadOnlyなCheckBoxということですから、こちらの方法で実現されたらいかがでしょうか? CheckBoxに拘る必要はないんじゃないかと思います。

    2008年3月20日 10:42
    モデレータ
  •  trapemiya さんからの引用

     

    他の方法としては、チェックボックスに似せたものを表示する方法があります。イメージでも良いでしょうし、TextBoxにレを表示したものでもそれっぽく見えると思います。どのみちReadOnlyなCheckBoxということですから、こちらの方法で実現されたらいかがでしょうか? CheckBoxに拘る必要はないんじゃないかと思います。

     

    そうですね。HTMLの制約なのであれば別の方法を探してみます。

     

    ありがとうございます。

    2008年3月21日 2:00