- - PR -
ComboBox.ItemsにObjectをセットしている場合のIndexOf
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-12-01 13:34
ComboBoxで名称を切り替えられたらそれに対応するコードを取得できる
ComboBoxを作るため、ComboBox.Itemsに
というクラスを作ってマスターからコードと名前の対をとってきて格納させています。 これで例えばComboBox1.Items(0).ItemValとすると名称はとれるのですが、 このComboBoxから「名称を渡してそれがItems(のItemVal)の何番目にいるか」を とるということをしようとして困っています。 文字列だけをセットしているComboBoxであればItems.IndexOf(ターゲット文字列) でとってこられるのですが、Itemsに格納されているのがItemListなため 文字列とItemListの比較になってしまうようで、-1が返ってきています。 今は苦肉の策として
のようにループをまわしながらItemValを順繰りに見て探しているのですが IndexOfのようにメソッド一発で呼べないものでしょうか? なければあきらめて、共通関数として実装しようと思っていますが 標準のメソッドでできるものならそちらを使いたいのです。 | ||||||||
|
投稿日時: 2005-12-01 14:50
DataSource,ValueMember,DisplayMemberの各プロパティを調べてみてください。
ListControl.DataSourceのヘルプの例が参考になるでしょう。 | ||||||||
|
投稿日時: 2005-12-01 15:37
補足ですが、バインドしていない場合は ToString した値にヒットしますね。 格納したインスタンスがサポートしていなければなりませんが。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2005-12-01 15:50
元記事の例ではオーバーライドしていたので、たどり着けると思い省略しましたぁ。 |
1