2012-04-17 29 views
0

データベースから15個の値にバインドされたデータであるマルチ選択モードのリストボックスがあります。私は、リストボックスで選択した各項目の選択された値を表示するには、このコードを持っている:複数選択リストボックスの選択値を取得

 foreach (var list in list_box.SelectedItems) 
     {    
      MessageBox.Show(list_box.SelectedValue.ToString()); 
     } 

残念ながら、メッセージボックスの正しい量が表示されるが、彼らは唯一持っているリスト内の最初の項目の選択した値を表示します選択されました。

誰かがこの問題を私に助けてくれますか?私はネットを検索していますが、正しく動作する1つの例は見つかりません!

答えて

4

私は戻って、この問題に来て、これを行うことによってそれを解決:あなたの助けのための

foreach(int blah in multilistbox.SelectedIndices){ 

    MessageBox.Show(blah.ToString()); 

    } 

感謝を!

1

リストの値をlist_boxオブジェクトから取り除く必要があります。

+0

ありがとうございます、私は今ロジックを理解しています(非常に疲れました!)。ただし、メッセージボックスにSystem.Data.DataRowViewが表示されていますか? – Mike91

1

選択した項目を既にループしています。なぜ呼び出さないのですか

MessageBox.Show(list.ToString()); 
1

あなたのコードに論理エラーがあると思います。 SelectedItemsをループしていますが、MessageBoxはまだlist_boxを使用して値を表示しています。これはどう?

foreach (var list in list_box.SelectedItems)   
{       
MessageBox.Show(list.ToString());   
} 
1
foreach (var list in list_box.SelectedItems) 
{    
    MessageBox.Show(list.ToString()); 
} 
+0

ありがとう、私は今論理を理解する(非常に疲れている!)。ただし、メッセージボックスにSystem.Data.DataRowViewが表示されていますか? – Mike91

+0

[DataRowView](http://msdn.microsoft.com/en-us/library/system.data.datarowview.aspx) - Itemsプロパティを使用して特定の値を取得する – Jason

+0

これはどのように機能しますか? foreachループの中にforループを置くことによって?申し訳ありませんが、私はこれを行う方法がわかりません。 – Mike91

1

このようにすることができます。

Int[] AllselectedIndex=ListBox1.GetSelectedIndices(); 
関連する問題