コンボボックスの値の設定・追加について


スタート  2009-03-29 06:36:35  No: 141766  IP: [192.*.*.*]

VBの勉強を行っているものです。(VB2008 Express Edition)
コンボボックスについて質問ですが、DropDownStyleがDropDownListであるコンボボックスにいくつかの値がリスト上にあるものとします。
その時、プログラムから任意の値を与え、以下のようにするにはどうしたらよいでしょうか?

1.すでにコンボボックスのリスト上にこの値が存在する場合は、その値がコンボボックスで選択されている状態にする。
2.コンボボックスのリスト上にこの値がない場合は、その値をコンボボックスのリストに追加し、その値がコンボボックスで選択されている状態にする。

よろしくお願いします。

編集 削除
特攻隊長まるるう  2009-03-29 08:42:29  No: 141767  IP: [192.*.*.*]

ヘルプ(MSDN)にコンボボックスで出来ることの一覧があります。
[ComboBox メンバ]
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.combobox_members.aspx
一通り目を通して、どうすれば実現できそうか考えてみては?

編集 削除
スタート  2009-03-30 20:36:32  No: 141768  IP: [192.*.*.*]

紹介してもらったページを見てみましたが、コンボボックスのリスト内に、任意の値があるかどうかを調べる方法
(ある場合は、その値をコンボボックスに表示する方法またはIndexを取得する方法)
を、どうやって実現すればいいか、いまいちよくわかりませんでした。
もちろん、Indexを0〜最大値までループして、値が存在したらそこを表示、ループ抜けても値がなければそれをコンボボックスに追加するという方法は思いつきましたが、
もっと簡単な方法があれば、どのようにすればよいか、教えていただきたく、よろしくお願いします。

編集 削除
kid  2009-03-31 10:01:02  No: 141769  IP: [192.*.*.*]

MSDNを徹底的に調べ上げることしかないような気がします。
でも親切な方がおしえてくれるかも

編集 削除
ちい  2009-03-31 11:14:56  No: 141770  IP: [192.*.*.*]

>任意の値があるかどうか

を調べる手段として  紹介してもらったページ  を見れば

> ComboBox 内で、指定した文字列で始まる最初の項目を検索します。 

という機能はあることがわかります。

ただし、先頭が***  という限定なので  
***という文字列を含む  という場合には対応できません。

編集 削除
くらま  2009-03-31 13:03:53  No: 141771  IP: [192.*.*.*]

http://www.red.oit-net.jp/tatsuya/vb/ComboBox.htm
参考になりませんか?

編集 削除
くらま  2009-03-31 13:08:41  No: 141772  IP: [192.*.*.*]

http://hanatyan.sakura.ne.jp/dotnet/listfram.htm
こんなのもありますよ

編集 削除
YuO  2009-03-31 13:53:36  No: 141773  IP: [192.*.*.*]

探す対象はComboBox.Itemsに含まれるので,
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.combobox.items.aspx
経由で
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.combobox.objectcollection.aspx
を見て,さらにComboBox+ObjectCollectionのメンバ一覧
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.combobox.objectcollection_members.aspx
見れば,普通に.NET Frameworkのコレクションを使っていれば
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.combobox.objectcollection.indexof.aspx
に気付くと思います。
# ComboBoxにはオブジェクトを自由に突っ込めますのでとりあえずこちらが正道かと。

編集 削除