トップ回答者
TextBoxのBackColor変更時に勝手に枠線が変更されないようにしたい

質問
-
TextBoxのBackColorを変更するとTextBoxの枠線がデフォルト(特に設定していない)の状態から
勝手に境界線が凹んだ状態に変更されてしまいます。
勝手に変更させない方法、または回避方法はありますでしょうか?
それともバグなので不可能でしょうか?
環境:
・Visual web develop2008
・IE8
・WindowsXP Professional SP2
ソース:
textbox.BackColor = Drawing.Color.FromArgb(0, 236, 236, 236)
※コメントアウトしてBackColorを変更しないと枠線も変更されなかった。
以上、よろしくお願いします。
回答
-
こんにちは。
バックグラウンドカラーを指定する際に、合わせてボーダースタイルを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;" />- 編集済み Keiichi Oumi 2011年9月20日 5:52 追記
- 回答としてマーク 山本春海 2011年9月29日 6:59
-
> それともバグなので不可能でしょうか?
そんなことはないです。
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
すべての返信
-
こんにちは。
バックグラウンドカラーを指定する際に、合わせてボーダースタイルを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;" />- 編集済み Keiichi Oumi 2011年9月20日 5:52 追記
- 回答としてマーク 山本春海 2011年9月29日 6:59
-
> それともバグなので不可能でしょうか?
そんなことはないです。
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
-
返信ありがとうございます
>>バックグラウンドカラーを指定する際に、合わせてボーダースタイルをSolid,1px として、ボーダーカラーにもそれらしい色を指定してみてはどうでしょうか。
→この方法では、クライアントの画面テーマがWindowsクラシックだと
今度はデフォルトの凹んだ境界線からSolid 1pxの境界線に、変更してしまいました。
>>すべてのtextBoxにスタイルを適用する。
→この方法で解決できそうですね。
デフォルトの境界線のままにできれば、一番よいので
解決策が見つかれば報告いたします。
- 編集済み ヨシムラ2011 2011年9月21日 7:34
-
> そうなのですか。
そうなのですかって、レスの意味を理解されていないとしか思え
ないですけど。「勝手に境界線が凹んだ」と書いてありますが、ASP.NET が勝手
に凹ませたわけではなく、それはヨシムラ2011さんが style 属
性に background-color:#ECECEC; を設定した結果です。そうす
ると、どのブラウザでも、多少の違いはあるものの、凹んで見え
るということです。ASP.NET だからそうなると言うわけではあり
ません。見栄えが気に入らないなら、自分の気に入るように、TextBox の
スタイル関係のプロパティを設定するか、もっと細かく設定したい
なら自分で CSS を書いてそれを CssClass に設定するということ
になります。> ASP.NETから完全にコントロールするのは難しいって意味でもあ
> りますよね。
> 困ったものです。そんなことはありません。
html, css を全く知らない初心者にも、ある程度見栄えがする
Web アプリケーションを作れるようにいろいろ配慮されているの
が ASP.NET です。それゆえ、決して難しくはありません。また、ASP.NET は「困ったもの」では決してないです。機能が多
くて使い方が分らないから困るということはあるかもしれません
が。