2012-04-17 70 views
0

我已經在多選模式下獲得了一個列表框,該列表框是用來自數據庫的15個值進行數據綁定的。我有這樣的代碼顯示在列表框中選擇的每個項目的選定值:獲取多選列表框的選定值

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

不幸的是,消息框正確的金額顯示,但他們只在具有列表中顯示的第一個項目的選定值已被選中。

請問有人可以幫我解決這個問題嗎?我一直在尋找網絡,但我找不到一個正確工作的例子!

回答

4

我又回到了這個問題,並通過這樣做解決了它:

foreach(int blah in multilistbox.SelectedIndices){ 

    MessageBox.Show(blah.ToString()); 

    } 

感謝您的幫助!

1

您應該從您的列表變量中取得的值不是來自list_box對象。

+0

謝謝,我明白現在的邏輯(非常累!)。但是,消息框顯示System.Data.DataRowView? – Mike91 2012-04-17 20:24:04

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 2012-04-17 20:27:27

+0

[DataRowView](http://msdn.microsoft.com/en-us/library/system.data.datarowview.aspx) - 使用Items屬性獲取您要查找的特定值 – Jason 2012-04-17 20:33:18

+0

這是如何工作的?通過在foreach循環中放置一個for循環?對不起,我不確定如何做到這一點。 – Mike91 2012-04-17 20:48:27

1

可以這樣做。

Int[] AllselectedIndex=ListBox1.GetSelectedIndices();