• 締切済み

VB.NETのDropDownListをReadOnlyにする方法またはEnable=Falseで字を黒くする方法

VB.NETで作成したWebページのDropDownListを変更させたくないのですが、Enable=Falseにすると文字の色が灰色になってしまって大変見にくいので、TextコントロールのReadOnlyのように、変更不可にする方法はあるのでしょうか? おしえてください~

みんなの回答

回答No.2

> ”入力できないようにする”というのは、Enable=Falseと同じで、”現在選択されているものを他のに変更できなくする”という意味で書きました。 なるほどなるほど。 > Enable=Falseだと色が灰色になってしまいますので、どうやって > ・Enable=Falseで黒くするのか? > ・ReadOnlyに換わるものがあるのか? > ということが聞きたかったのです。 となると CSS とかでも無理っぽいので、 あらかじめ ReadOnly なテキストボックスを非表示にしておき、DropDownList にロックを掛けたいタイミングで ・DropDownList を非表示にする。 ・DropDownList で選択されている値を TextBox にセットする。 ・TextBox を表示する とすれば可能です。 これらの動作をクライアント側で行いたいのであれば JavaScript で記述すればいいです。 下記が参考になるかもしれません。 http://chaichan.web.infoseek.co.jp/qanda/qa6878.htm?06-08-06-13-39

Haule
質問者

お礼

ありがとうございます。 やっぱりその方法しかないのですね(><) できれば避けたかったのですが、その方法でやってみることにします~

回答No.1

できれば VB のバージョンと、開発しているのが Windows アプリケーションなのか Web アプリケーションなのかを記述してください。 DropDownList という名称から推測すると ASP.NET の Web アプリケーションを開発中なのでしょうか? であればブラウザ上でレンダリングされるときは HTML の SELECT コントロールになりますのでユーザーが入力をすることはできず、元から入っている値のどれかを選択するしかできません。 ですのでやりたいことはすでに実現できていると思いますよ。 もし開発しているのが Windows アプリケーションであれば、DropDownList ではなくて ComboBox の間違いじゃないでしょうか? ComboBox の場合は DropDownStyle プロパティを DropDownList に設定すれば、ユーザーは入力することができず、値を選択するしかできなくなります。

Haule
質問者

補足

ごめんなさい。説明不足でした。 開発はWebアプリケーションです。 ”入力できないようにする”というのは、Enable=Falseと同じで、”現在選択されているものを他のに変更できなくする”という意味で書きました。 DropDownListには、すでに選択する項目が複数入っていて、いわゆるEnable=Falseのようにスイッチで変更可、変更不可を切り替えたかったのです。 TextBoxはReadOnlyプロパティにて変更できなくなりますが、DropDownlistにはこのプロパティがありません。 Enable=Falseだと色が灰色になってしまいますので、どうやって ・Enable=Falseで黒くするのか? ・ReadOnlyに換わるものがあるのか? ということが聞きたかったのです。

関連するQ&A