2012-01-20 6 views
1

をアクセスもできない私はlistbox1.SelectedItemsの全てのタグを取得しようとしているので、私はこのようなforeachのを使用したい:はListItemの

foreach (ListItem itm in listBox1.SelectedItems) 
     { 
      MessageBox.Show(itm.Tag); 
     } 

しかし、VS2010は、「ListItemの」を見つけられないと私はその特定の参照を追加する必要がありますが、私はそれを見つけることができません。他の何かを行うことができますか、その参照やアセンブリをどこで見つけることができますか? ありがとう!

+2

「var」キーワードを使用してください。次に、コンパイラーがその上にカーソルを置くことによってコンパイラーにタイプを決定させます。 – Aphelion

+0

アイテムのテキストとは異なるので、アイテムのタグを検索したいです。 – XandrUu

+0

WinFormsアプリケーション – XandrUu

答えて

2

プロパティlistBox1.SelectedItemsは、Objectのコレクションを返します。これらは選択した実際のオブジェクトです。 ListItemオブジェクトはありません。

キーワードvarをお試しください。次に、コンパイラーがその上にカーソルを置くことによってコンパイラーにタイプを決定させます。どのようなオブジェクトタイプがあなたに表示されますか?

ListViewItemと表示されますが、ListItemタイプを使用してください。

+0

どうすれば私のlistbox1.SelectedItemsをすべて投げてther tagasを表示することができますか? – XandrUu

+0

'Tag 'プロパティをサポートするかどうかは、オブジェクトに依存します。どのようなタイプのオブジェクトをあなたのリストに入れましたか? – Aphelion

+0

ListViewItem itms =新しいListViewItem(); itms.Text = "テスト"; itms.Tag = "test2"; – XandrUu

1

listBox1.SelectedItemsはオブジェクトのコレクションを返します。したがって、それらをlistBoxに追加するときのタイプによって異なります。あなたが例えば文字列としてそれらを追加した場合、あなたは、単に行うことができます。

foreach (String str in listBox1.SelectedItems) 
{ 
    MessageBox.Show(str); 
} 
0

listBox1.SelectedItemsを型ListBox.ObjectCollectionです。なぜListItemにキャストしようとしていますか?

あなたは、カスタムオブジェクトを作成して使用してリストボックスオブジェクトにバインドすることができます

listBox1.DataSource = YOUR_CUSTOM_OBJECT_ARRAY 

は、その後、あなたの項目を反復処理: http://mcpmag.com/articles/2004/02/01/bind-data-to-winforms-controls.aspx

foreach (YOUR_CUSTOM_OBJECT itm in listBox1.SelectedItems) 
    { 
     MessageBox.Show(itm.CUSTOM_PROPERTY); 
    } 

あなたがここに例を見つけることができます

+0

XandrUuが望むように、 'ListViewItem'にTagプロパティがあるので、これはちょっと残念だと思います。 – Aphelion

0

データバインドされたコレクションを解析してListBoxに表示する場合は、Gordonが答えを出します。ビジュアルツリーを解析してListItemを取得する場合、VisualTreeHelperクラスには、そのようなデータを解析するために必要なものすべてが用意されています。

http://msdn.microsoft.com/en-us/library/system.windows.media.visualtreehelper.aspx

関連する問題