• 締切済み

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

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

  • Haule
  • お礼率52% (125/240)

みんなの回答

回答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

  • ExcelVBA EnableプロパティがFalseの時に文字の色を変えたくない

    ユーザーフォーム上のテキストボックスの内容を変えたくないときにEnableプロパティをFalseにすると、文字の色が灰色に変わってしまいますよね。 色を変えたくないので防ぐ方法はないでしょうか。 また、文字を変更させない方法で、ほかによい方法はないでしょうか。

  • ASP.NETのDropDownListについて

     Visual Studio 2010でWebアプリケーションを作成しているのですが、ツールボックスにComboBoxがなく、DropDownListでComboBoxなるものを作ろうと考えております。  動作としてはカウントしたものを配列に格納して、それをDropDownListにItemとして追加し、表示しようと考えています。  それで作成し、実行してみると、DropDownListにはカウントの最後の数字のみ(1,2,3,4,5を格納した場合、5のみ)が表示されてしまいます。VBでならきちんと5行のリストが出てくるのですが、ASP.NETで行うと更新されているためか上手く表示することができません。  どなたか詳しい方おられましたら、ご回答よろしくお願いいたします。  

  • BOCのINPUT MANでラベルのコントロールはできないですか?(VB6)

    VB6でINPUT MANを使っているのですが、 ラベルのコントロールは使用できないのでしょうか? テキストボックスやマスクは機能が充実しており、標準のものよりも大変使いやすいです。 ですが、ラベルに関しては、標準のものを使用しているので大変、使い勝手が悪いです。 縦位置が中央に寄らないなど... INPUT MANでラベルのコントロールってないのでしょうか? (見る限りないようですし、ラベルはINPUTでないから駄目でしょうか?) もう一つなのですが、 自分は、テキストボックスを使用不可(ENABLE=FALSE)にした時に、 テキストボックス内の文字がくすんで(黒文字→灰色文字になる) のが嫌なので、外にフレームを張り、フレームに対して、ENABLEを制御しています。 INPUT MANのテキストボックスでも、 ENABLE=FALSE(フォーカスが当たらない状態)で文字はそのままの状態はできないのでしょうか? LOCKEDでコントロールも有効かと思いますが、フォーカスが当たらない方がいいです。 →ラベルの使いにくさの応用で代用できるかと思いまして...

  • VB6.0のEnabledをfalseにしてもクリックイベントが走ってしまう・・・

    はじめまして。 今VBでオセロゲームを作成しているのですが、コンピュータが考えているときにボタンのEnabledをfalseにしてクリックイベントを走らせないようにしています。 デバックなどをするとうまくいくのですが実際プログラムを実行するとどうしてもEnableをTrueにした後にクリックイベントが走ってしまいます。クリックイベントがたまっているようにも見えるのですが何か解決法はあるのでしょうか。よろしくお願いします。

  • 透明なフレーム VB.net

    開発環境 Windows2000Pro VB.net 2003 コンボボックス・オプションボタン(ラジオボタン)・チェックボックスの操作を不可としたいと思っております。 単に「Enabled」プロパティを「False」にすると、ラベルの文字が薄くなってしまうので、文字はそのままにしたいと考えております。 VB6では、枠線無しのフレームで囲み、そのフレームに対して、「Enabled」を操作することで可能でした。 VB.netではGroupBox・Panelというコントロールが提供されているようですが、実現は可能なのでしょうか? ご存知な方、宜しくご教授お願いします。

  • vb.netでDataGridViewの背景色の変更について

    初心者ですがよろしくお願いします。 現在DataGridViewにデータを表示できたのですが 背景色の変更ができません。 '編集したDataTableをDataGridViewにセットする DataGridView.DataSource = dt 'DataGridViewにユーザーが新しい行を追加できないようにする DataGridView.AllowUserToAddRows = False '行ヘッダーを非表示にする DataGridView.RowHeadersVisible = False 'DataGridViewの1番目の列を読み取り専用にする DataGridView.Columns(0).ReadOnly = True 'DataGridViewの2番目の列を読み取り専用にする DataGridView.Columns(1).ReadOnly = True 'DataGridViewの3番目以降の列のセルのテキストの配置を上下中央で右寄せする For dateIndex As Integer = 0 To monthList.Count - 1 DataGridView.Columns(2 + dateIndex).DefaultCellStyle.Alignment = _ DataGridViewContentAlignment.MiddleRight Next 'インデックス0の行のセルの背景色を薄い灰色にする DataGridView.Rows(0).DefaultCellStyle.BackColor = Color.LightGray と記述しております。 Rowsの部分をCulumsに変えると縦の色を変えることはできるのですが 何故かRowsだと横の色が変化しません 環境としましては Microsoft Visual Basic 2008 Express Edition VB.NET です ご教授、よろしくお願いします。

  • VB.NETについて

    いつも大変お世話になっています。 VB.NETについてお聞きしたいことがあります。 (VB.NET 未経験者です。) VB.NET でWEBページ作成しようとしているのですが、VBのようなフォーム(Form1.vb というもの)を クライアント側のPCやブラウザに依存せずに表示させることは可能なのでしょうか? 実際、今までそういうページを拝見する機会がなく、又、手元にも 資料が乏しくここに質問させていただきました。 WEBでも検索をかけてみましたが、VB.NETのコードサンプルは見つけることが出来たのですが、 実際にフォームを使用しているWEBサンプルがあればいいな。と思っています。 ご存知の方がいらっしゃればよろしくお願いいたします。

  • VB.NETのパネルの使い方

    VB.NETでWEBアプリケーションを作るのですが、Panelコントロールにテキストボックスやコンボボックスを配置し、メソッド一回でそのパネルの上に乗っている各コントロールをクリアしたいのです。こういう使い方ってできるのでしょうか?

  • VB.NETでブラウザのフォームに入力する方法について

    VB.NETでブラウザに表示されたWEBページのフォームに データを入力したり、ラジオボタンの設定をしたりしたいのですが、 入力内容によってフォームの入力欄がEnabled = True や Falseに 切り替わる入力欄がある場合、VBでそのエレメントに データを設定してもフォームを送信などをした際に反映されていません。 例えばラジオボタンで選択A、選択B、その他という3つの選択があって、 その他を選択すると、テキスト入力エリアが入力可能になるというフォームです。 ブラウザに直接手動で設定を変更すれば、入力欄のEnabledが切り替わるのですが、 VBでラジオボタンを設定した場合は切り替わらず、Enabled = False の状態のまま VBでデータを設定しても受け付けられないようです。 この為、VBでデータを設定した際に、別の欄のEnabledの状態を変えたいのですが、 どのような方法でやれば良いでしょうか。ご教授いただければ幸いです。

  • CSSで条件によってボタンの文字色を変えたい。

    HTMLのスタイルシートでFormの文字色が変えれる事はわかっています。 style="background:red;color:white;" でいいんですよね。 そこで、CSSで条件によってボタンの文字色を変えたいのですが、どうすればいいでしょうか? なぜ、こんな事を考えるようになったかというと、 IE等では、ボタンのEnableがTrueの時は黒色(バックは普通)、Falseの時は灰色(バックは薄い)状態になるのですが、 この前、chromeでそのボタンを確認したところ、TrueでもFalseでも文字色が黒になっていました。 そこで、ボタンのEnableがFalseの時に、文字色を灰色に変えたいのですが、そんな事ってCSSを使ってでも出来るのでしょうか? もし出来ないとしたら、ボタンひとつずつスタイルを設定しないといけないという面倒な事になりそうなのです。 もし、CSSでボタンがEnable=falseの時だけ、ボタン色を灰色にする方法がわかる方がいらっしゃいましたら、回答してください。 急ぎませんので、回答よろしくお願いします。

    • ベストアンサー
    • HTML