• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VB2008でコンボボックスのクリアについて )

VB2008でコンボボックスのクリアについて

このQ&Aのポイント
  • VB2008でコンボボックスのクリア方法について、コンボボックスの設定を指定した方法でクリアしても一部の値が残る現象が発生する場合があります。
  • クリア方法に問題があるのか、.SelectedIndex = 0を指定しないと正しくクリアされない状況になることがあります。
  • VB2008のコンボボックスのクリアについては、適切な方法を使用する必要があります。

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

  • ベストアンサー
回答No.2

DropDownStyleプロパティが「ComboBoxStyle.DropDown」ですよね? 手入力も受け付けている形式なので、リストアイテムをクリアしても、Textとして残るのは、ComboBoxの仕様です。 対策方法1.手入力をやめさせる DropDownStyle = ComboBoxStyle.DropDownList とする 対策方法2.Textプロパティを参照しない http://social.msdn.microsoft.com/Forums/ja-JP/vsfeedbackja/thread/4da33321-c724-4eb2-9861-b9476b013325 のように、ValueMember と DisplayMemberを設定し、内部のコードはTextを参照するのではなく、SelectedValueなどを利用する方法です。 っていうか、.NETのコンボボックスって、こっちの使い方の方が王道だと思います。

cw3629
質問者

お礼

ご指摘の通りです。 助かりました、(2)で対応しました。 大変勉強になりました。 有難うございました

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • Be_DaMa
  • ベストアンサー率33% (2/6)
回答No.3

ComboBox1.Items.Clear()は、コンボボックスに表示させるリストを 削除するときに使います。 質問者さまは コンボボックスに表示されるリストを削除したあと、 .ItemsAdd で、表示させるリストを追加し、 .SelectedIndex(0) で、1番目のリスト"a"を選択しているので "a"が表示されます。 質問者さまは、コンボボックスのリストを削除したいのではなくて コンボボックスにリストが選択されていない状態にしたいのではないかと 思うのですが、、、(解釈がまちがっていたらごめんなさい) そういう場合は .SelectedIndex = -1 とすればコンボボックスには 何も表示されない(選択されていない)状態になります。

すると、全ての回答が全文表示されます。
  • loveMySai
  • ベストアンサー率48% (12/25)
回答No.1

質問者さまのコードでは、コンポ・ボックスに値"a"と"b"は、残ると思います。 (小生も同じような経験があります。) >> 質問者さまのコード With ComboBox1 .Items.Clear() >> この部分で、コンボボックス内の値をクリア .Items.Add("a") >> この部分で、値"a"が追加される .Items.Add("b") >> この部分で、値"b"が追加される .SelectedIndex = 0 End With >> つまり、一回、クリアさせても、次の行(.Items.Add("a"))で a を追加しているので、"a"の値は、残ります。 後、質問者さまも閲覧していると思いますが、msdn のフォーラム http://social.msdn.microsoft.com/Forums/ja-jp/categories も、いろいろと参考になると思います。

参考URL:
http://social.msdn.microsoft.com/Forums/ja-jp/categories
すると、全ての回答が全文表示されます。

専門家に質問してみよう