2009-05-17 15 views
1

私は.net newbieを楽しみながら1つのプロジェクトを開始しています。 リストボックスにいくつかの都市名が入力されているので、ユーザーが選択できるようになりました。 各都市クラスには名前とUIDがあります。どの市のユーザーがクリックしたのかをどのように知るのですか? 明らかに、私は都市リストと 名前で1つを見つけるが、それは愚かだと思う選択項目のテキストを取得することができます。リストボックス内のアイテムを追跡する

MFC SetItemDataPtrタイプのものと同等か、それとも最も一般的な方法は ですか?

+0

WinForms、WebForms、WPF? –

+0

WinForms 15chars – TheBlack

答えて

3

あなたはリサイズListBoxを参照していると仮定するとし、これは以下の方法で行うことができます。

代わりの文字列の配列/コレクション(私はあなたが現在行っていると推定される)にListBoxItemsを設定し、あなたではなく、ユーザー定義型(あなたのケースでCity)のコレクションにそれを設定することができ、 DisplayMemberプロパティ(Nameに設定するか、Cityクラスのプロパティを表示するかを設定します)を使用して、ListBoxの各アイテムが実際にユーザー定義のCityオブジェクトとしてアクセスされるようにします。そのNameプロパティです。

+0

これはまさに私が探していたものです。ありがとう! – TheBlack

0

は、次のコードによって、ユーザが選択した項目を取得することができます

list1.SelectedItem; 

//text -> list1.SelectedItem.Text 
//value-> list1.SelectedItem.Value 
0

Objectを受け入れ、好ましくはToString()メソッドを実装しているため、ListBoxに独自のタイプのアイテムを渡すことができます。 ListBoxのSelectedItemプロパティでアクセスできるように、IDプロパティと名前プロパティを持つオブジェクトにすることができます。

1

ListBoxではなくListView(詳細モード)を使用します。次に、MFCのSetItemDataPtrに相当するListViewItemのTagプロパティを使用できます。

+0

私はちょうどこれを探していた:)ありがとう! – TheBlack

関連する問題