none
TextBoxのBackColor変更時に勝手に枠線が変更されないようにしたい RRS feed

  • 質問

  • TextBoxのBackColorを変更するとTextBoxの枠線がデフォルト(特に設定していない)の状態から

    勝手に境界線が凹んだ状態に変更されてしまいます。

    勝手に変更させない方法、または回避方法はありますでしょうか?

    それともバグなので不可能でしょうか?

    環境:

    ・Visual web develop2008

    ・IE8

      ・WindowsXP Professional SP2

    ソース:

    textbox.BackColor = Drawing.Color.FromArgb(0, 236, 236, 236)

    ※コメントアウトしてBackColorを変更しないと枠線も変更されなかった。

     

    以上、よろしくお願いします。

    2011年9月20日 4:50

回答

  • こんにちは。

    バックグラウンドカラーを指定する際に、合わせてボーダースタイルをSolid,1px として、ボーダーカラーにもそれらしい色を指定してみてはどうでしょうか。

    ただし、IE9では、デフォルトの状態でへこんでいますので、IE8以外のブラウザも考慮するならば、すべてのtextBoxにスタイルを適用するなどする必要があると思います

    以下のような感じです。(色はもう少し吟味する必要があります)


    <input name="ctl00$MainContent$TextBox1" type="text" id="MainContent_TextBox1" style="background-color:#ECECEC;border-color:#B9B9B9;border-width:1px;border-style:Solid;width:259px;" />
        </p>
        <p>
            <input name="ctl00$MainContent$TextBox2" type="text" id="MainContent_TextBox2" style="width:255px;" />

    2011年9月20日 5:48
  • > それともバグなので不可能でしょうか?

    そんなことはないです。

    ASP.NET といっても、最終的にブラウザに送られるのは html のコー
    ドとスタイルです。

    > textbox.BackColor = Drawing.Color.FromArgb(0, 236, 236, 236)

    という設定によって、以下の html + style がレンダリングされます。

    <input type="text" ... style="background-color:#ECECEC;" />

    それがブラウザでどう表示されるかということで、ASP.NET とは関係ない
    と思いますが・・・

    ちなみに、この場合、多少の違いはあるかもしれませんが、IE, Firefox,
    Chrome, Safari, Opera などメジャーなブラウザで見て、ほとんど同じ
    (凹んだ状態?)に見えると思います

     

    • 回答としてマーク 山本春海 2011年9月29日 6:59
    2011年9月20日 13:15
  • そんなはずはありません。HTML / CSSをしっかりと理解できていないだけで、その知識はASP.NETと無関係です。

    CSSの扱い方がわかっていれば、そのクラス名をTextBox.CssClassプロパティに設定するだけです。

    • 回答としてマーク 山本春海 2011年9月29日 7:00
    2011年9月21日 8:16

すべての返信

  • こんにちは。

    バックグラウンドカラーを指定する際に、合わせてボーダースタイルをSolid,1px として、ボーダーカラーにもそれらしい色を指定してみてはどうでしょうか。

    ただし、IE9では、デフォルトの状態でへこんでいますので、IE8以外のブラウザも考慮するならば、すべてのtextBoxにスタイルを適用するなどする必要があると思います

    以下のような感じです。(色はもう少し吟味する必要があります)


    <input name="ctl00$MainContent$TextBox1" type="text" id="MainContent_TextBox1" style="background-color:#ECECEC;border-color:#B9B9B9;border-width:1px;border-style:Solid;width:259px;" />
        </p>
        <p>
            <input name="ctl00$MainContent$TextBox2" type="text" id="MainContent_TextBox2" style="width:255px;" />

    2011年9月20日 5:48
  • > それともバグなので不可能でしょうか?

    そんなことはないです。

    ASP.NET といっても、最終的にブラウザに送られるのは html のコー
    ドとスタイルです。

    > textbox.BackColor = Drawing.Color.FromArgb(0, 236, 236, 236)

    という設定によって、以下の html + style がレンダリングされます。

    <input type="text" ... style="background-color:#ECECEC;" />

    それがブラウザでどう表示されるかということで、ASP.NET とは関係ない
    と思いますが・・・

    ちなみに、この場合、多少の違いはあるかもしれませんが、IE, Firefox,
    Chrome, Safari, Opera などメジャーなブラウザで見て、ほとんど同じ
    (凹んだ状態?)に見えると思います

     

    • 回答としてマーク 山本春海 2011年9月29日 6:59
    2011年9月20日 13:15
  •  

    返信ありがとうございます

    >>バックグラウンドカラーを指定する際に、合わせてボーダースタイルをSolid,1px として、ボーダーカラーにもそれらしい色を指定してみてはどうでしょうか。

    →この方法では、クライアントの画面テーマがWindowsクラシックだと

    今度はデフォルトの凹んだ境界線からSolid 1pxの境界線に、変更してしまいました。
     

    >>すべてのtextBoxにスタイルを適用する 

    →この方法で解決できそうですね。

    解決策の一つとさせて頂きます。

     

    デフォルトの境界線のままにできれば、一番よいので

    解決策が見つかれば報告いたします。

    2011年9月21日 7:33
  • 返信ありがとうございます。

     

    そうなのですか。

    ASP.NETから完全にコントロールするのは難しいって意味でもありますよね。

     

    困ったものです。

    2011年9月21日 8:06
  • そんなはずはありません。HTML / CSSをしっかりと理解できていないだけで、その知識はASP.NETと無関係です。

    CSSの扱い方がわかっていれば、そのクラス名をTextBox.CssClassプロパティに設定するだけです。

    • 回答としてマーク 山本春海 2011年9月29日 7:00
    2011年9月21日 8:16
  • > そうなのですか。

    そうなのですかって、レスの意味を理解されていないとしか思え
    ないですけど。

    「勝手に境界線が凹んだ」と書いてありますが、ASP.NET が勝手
    に凹ませたわけではなく、それはヨシムラ2011さんが style 属
    性に background-color:#ECECEC; を設定した結果です。そうす
    ると、どのブラウザでも、多少の違いはあるものの、凹んで見え
    るということです。ASP.NET だからそうなると言うわけではあり
    ません。

    見栄えが気に入らないなら、自分の気に入るように、TextBox の
    スタイル関係のプロパティを設定するか、もっと細かく設定したい
    なら自分で CSS を書いてそれを CssClass に設定するということ
    になります。

    > ASP.NETから完全にコントロールするのは難しいって意味でもあ
    > りますよね。
    > 困ったものです。

    そんなことはありません。

    html, css を全く知らない初心者にも、ある程度見栄えがする
    Web アプリケーションを作れるようにいろいろ配慮されているの
    が ASP.NET です。それゆえ、決して難しくはありません。

    また、ASP.NET は「困ったもの」では決してないです。機能が多
    くて使い方が分らないから困るということはあるかもしれません
    が。

     

    2011年9月21日 15:33
  • 返信ありがとうございます。

    テキストエディタでHTMLを書いてみてやっとわかりました。

    仕様なのですね。勉強なりました。


    HTML/CSSを調べてみます。
    2011年9月22日 12:17
  • 返信ありがとうございます。

    上にも書きましたが、テキストエディタでHTMLを書いてみてやっとわかりました。

    ASP.NETだと思い込んでいて自分自身をまったく疑ってませんでした。

    勉強になりました。


    HTML/CSSを調べてみます。
    2011年9月22日 12:22