none
コントロールのenabledをfalseにしても文字の色は変えたくない RRS feed

  • 質問

  • OS:Windows7
    開発言語:C#.net
    フレームワーク:4.0

    いつもお世話になっています。

    Windowsアプリの開発をしています。
    現在、パネル上にテキストやラベル、ラジオボタン等の
    コントロールを配置し、パネルのenabledで各コントロールの
    enabledの切替を行っています。

    enabledをfalseにすることで各コントロールの文字の色や
    チェックボックスのチェックを行う場所の色が薄くなるのですが
    これを色は薄くしないでおくことは可能なのでしょうか?


    テキストボックスについては、OnEnabledChangedやOnPaintイベント
    、TextRendererクラスを使用し実装できたのですが、
    ラベルやチェックボックス、ラジオボタンで同様の方法では
    うまいこといかず、困っています。
    また、OnPaintイベントのe.Graphics.DrawStringを使用した場合、
    ラベルでは文字間が詰まってしまいました。

    解決策を模索中に透明にしたパネルを使用するという
    サイトを見つけたのですが、既に開発が完了している画面が
    多く、修正に時間がかかってしまいます。
    各種コントロールはカスタマイズしたものを使用しているので
    出来れば、カスタマイズしたコントロール内を修正するだけで
    よい方法を探しています。


    ご教授お願いします。

    2012年7月19日 1:24

回答

  • 思い付きですが、各コントロールがそれぞれ自分でバリアを張って、外から弄れないようにしてしまえば良いかもしれません。バリアは透明なパネルで実現します。TabStopプロパティをfalseにする必要もあるでしょう。


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/

    • 回答としてマーク Ninichi 2012年7月20日 1:32
    2012年7月19日 4:13
    モデレータ

すべての返信

  • 思い付きですが、各コントロールがそれぞれ自分でバリアを張って、外から弄れないようにしてしまえば良いかもしれません。バリアは透明なパネルで実現します。TabStopプロパティをfalseにする必要もあるでしょう。


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/

    • 回答としてマーク Ninichi 2012年7月20日 1:32
    2012年7月19日 4:13
    モデレータ
  • 返信ありがとうございます。

    透明パネルで対応することにしました。

    http://youryella.wankuma.com/Library/Extensions/Control/Transparent.aspx

    を参考に実装していきたいと思います。

    • 編集済み Ninichi 2012年7月20日 1:33
    2012年7月20日 1:20