• ベストアンサー

Comboboxについて

コンボボックスを利用して、項目を選択できるようにしようと考えています。 検討課題は2つ。 1、コンボボックスでリスト以外の文字は入力ができないようにする。 2、前回選択した内容を次回起動時に設定する。 と言うことです。 1について DropDownStyleを「DropDownList」にすることで入力は出来なくなりましたが、 初期表示が空白になってしまいます。 初期表示でリストの先頭を表示させることはできるでしょうか? 2について 同様だと思うのですが、リストの表示を制御することは出来るのでしょうか? DropDownStyleを「DropDown」にするとTextを一致させることで実現できましたが、「DropDownList」ではTextではできないみたい。 ご存知の方がいらっしゃいましたら教えてください。 よろしくお願いいたします。 VB.NET 2002使用

  • a-k-a
  • お礼率43% (77/176)

質問者が選んだベストアンサー

  • ベストアンサー
  • gypsywind
  • ベストアンサー率30% (4/13)
回答No.1

僕は愚直にリスト候補文字列と表示させたい文字列を ループで比較して一致するindexを取得します。 Dim i As Integer For i = 0 To ComboBox1.Items.Count - 1 If ComboBox1.Items(i).ToString = {設定文字列} Then ComboBox1.SelectedIndex = i End If Next こんな感じです。

a-k-a
質問者

お礼

早速ありがとうございます。 SelectedIndexの発想がなかったです。 サンプルを作ってみるとうまくいきました。 ありがとうございました。

その他の回答 (1)

回答No.2

こんにちは コンボボックスを配置したフォームのロード時に 1については   ComboBox2.SelectedIndex = 0 2については   前回選択されたテキストを   ComboBox2.Text = "前回のテキスト" で実現できると思いますが。

a-k-a
質問者

お礼

早速ありがとうございます。 SelectedIndexの発想がなかったです。 サンプルを作ってみるとうまくいきました。 ありがとうございました。

a-k-a
質問者

補足

先にお礼を閉めてしまったのこちらで。 ComboBox2.Text = "前回のテキスト" で上手く表示されました。ありがとうございます。

関連するQ&A

  • ComboBoxのプロパティについて

    コンボボックスに年数を表示します。 プロパティはDropDownListです。 dim year as integer For year = 1990 to 2010 yearcombobox.items.add(year) Next 質問:コンボボックスに年数以外に空白を一つ 入れたいですが(年数と空白を両方選択できるように作りたいです。) どなたか教えて下さい。

  • コンボボックスの選択後のカーソル位置について

    VB6でプログラムを作成しています。 コンボボックスのリストから選択後のカーソル制御について質問です。 コンボボックスのリストから選択後に選択したものが全選択となり カーソルが文字列の最後尾に移動してしまいます。 文字列よりコンボボックスの幅が小さい場合にカーソルが最後尾に移動すると表示が先頭からの表示になりません。 選択後にコンボボックスの表示が選択したものの文字列が先頭から表示 されるように制御したいのですが。 どのように制御したらよいか、知っている方教えてください。

  • コンボボックスのテキストを消さないようにするには?

    VB2005初心者です。よろしくお願いします。 ComboBoxプロパティをDropDownListに設定した状態で、Itemをオールクリアしても選択したItemのテキストを残す方法はありますか? ComboBoxプロパティをDropDownに設定するとItemは消えてテキストは残るのですが、DropDownListにすると両方とも消えてしまいます。 どうぞよろしくお願いします。

  • access フォームのコンボボックスでの式

    となりのテキストボックスに入力があったらコンボボックスからリストを自動選択、テキストボックスが空白なら手動でリスト選択という風にしたいのですが、コンボボックスのコントロールソースに直接式を入れても、また、フォームの元になるクエリのフィールドに式を設定してもうまく動きません。 良い解決方法はありませんでようか? どう質問したら良いかわからず大雑把でわかりづらいかもしれませんが、宜しくお願い致します。 質問に足りない情報がありましたら、補足しますのでお願いします。

  • VBAコンボボックスのリスト選択について

    現在、ユーザーフォームを作成していますがコンボボックスでのリスト選択について質問します。 【質問内容】 コンボボックスを3つ作成し、Select Caseでそれぞれのリストを連動させるプログラムを組んでいます。 (1)3つとも選択した後で例えばリスト1を変更しようとするとエラーになってしまいます。リスト以外の文字列も入力できるようにしているつもりですがなぜでしょうか? (2)選択後、シートセルに転送した後、テキストボックスならば「.Text = ""」で一旦空白になりますが、コンボボックスの場合どうしたらよいのでしょうか? シートセルに転送後も選択した内容が残ってしまい結局(1)の事象に基づきエラーになってしまい連続入力ができません。 初歩的な質問で恐縮ですが、よろしくお願いいたします。

  • コンボボックス 選択後のカーソル制御

    ACCESS2007のデータベースを利用しています。 テキストボックス1、コンボボックス1、テキストボックス2が上から順に並んでおり、コンボボックス1で表示されるリストから一つを選ぶと、カーソルがテキストボックス2に遷移します。 (ACCESS2007のオプションの詳細設定のところで、フィールド移動時の動作をフィールドの先頭に移動)に設定しています。 コンボボックス1の選択後、コンボボックス1の先頭にカーソル移動するには、どのような処理をVBAに追加すればよいでしょうか? Private Sub コンボボックス1_AfterUpdate() テキストボックス1.SetFocus コンボボックス1.SetFocus With Me!コンボボックス1 .SelStart = 0 .SelLength = 0 End With End Sub ではうまく動作しませんでした。どうぞ宜しくお願い致します。

  • コンボボックスの値の表示方法

    お世話になります。VB6で開発しています。 コンボボックス(cmb_No)で▼をクリックすると、従業員No(5桁)とその横に氏名が表示されるとします。 この一覧より一つクリックして選択したときに、コンボボックスのテキストには従業員Noのみ表示させたいのですが、何か方法はありませんでしょうか? Click時イベントでリストインデックス(idx)を取得後、 cmb_No.text = Left(cmb_No.List(idx),5) としましたが、テキストには表示されません。 普通に何もイベントを書かずに選択すると選択したものがそのままTextに残りますよね?

  • Accessレポートでコンボボックスが動かない

    Access2010のレポートでコンボボックスを使いたいのですが、コンボボックスが正しく表示されず困っています。 表示されないというのは、コンボボックスのリストを選択する逆三角形が表示されず、またリストも全く表示されません。つまりテキストボックスのように空のの四角い箱が表示されてしまいます。 表示したいリストはあるテーブルから引っ張っているのですが、全く同じことをリストボックスでやろうとするとすべての項目がうまく表示できることは確認しました。 またフォームの方ではコンボボックスをから項目が選択できることも確認できています。 レポートではコンボボックスが使えないような仕様になっているのでしょうか? お分かりになる方教えていただけますでしょうか?

  • 【VS2015】コンボ ボックスの選択状態解除

    Visual Studio 2015 c++で開発をしています。 コンボ ボックスを DropDownList スタイルにして使用しています。 コンボ ボックスでリストを選択すると選択状態(青反転)になりますが、 選択した後に選択状態を解除する方法はありますか? よろしくお願いします。

  • コンボボックスの初期値(?)

    アクセス2000でデータベースを作成しています。 フォームでコンボボックスを置いています。フォームはなにも打たないと空白になっています。大体、いつも同じものを選択することになるのでそれを初期値としてセットしておきたいと思っています。コンボボックスのプロパティに「既定値」がありそれに入力しておく方法があります。 これではひとつ問題があります。リスト行が何行もある場合、一番上から選択しなければいけません。これをリスト行の真ん中あたりから上下選べるようにしたいのです。 このような場合、どのような方法でやればいいでしょうか?

専門家に質問してみよう