2017-08-10 81 views
1

我試圖讓所選項目的索引列表框中:ListBox獲取選定的索引?

private void listBox1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    int index = listBox1.SelectedIndex; 
} 

當我選擇第二項則返回我的索引零一次。

填充列表框:

private void fillWorkListBox() 
{ 
    this.list = manager.works(); 
    this.listBox1.DisplayMember = "name"; 
    this.listBox1.ValueMember = "id"; 

    for (var i = 0; i < this.list.works.Count; i++) 
    { 
     string name = "№" + this.list.works[i].id + " - " + this.list.works[i].name; 

     WorkModel work = new WorkModel(); 
     work.name = name; 
     work.id = this.list.works[i].id; 

     listBox1.Items.Add(work); 
    } 
} 
+0

檢查的情況下,你有另一個列表框在你的形式,因爲你做的方式是正確的,我只能認爲還有另外一個列表框 – Jersono

+0

你能告訴使用你如何插入/綁定數據與ListBox?你的實際代碼應該按照預期工作。 –

+1

是的,已編輯的問題 – Daniel

回答

2

看來你的列表已SelectionMode屬性設置爲一些不同於默認。例如,如果SelectionMode是MultipleSimple,則不能使用SelectedIndex屬性,因爲它不是所選元素的列表。而是使用將selectedIndices收集

void listBox1_SelectedIndexChanged(object sender, EventArgs args) 
{ 
    foreach(int x in listBox1.SelectedIndices) 
     Console.WriteLine(x); 
} 
+0

是的,我使用多個。那麼如何解決它的多個? – Daniel

+1

如果您使用多個,那麼您可以選擇多個元素,以便使用SelectedIndices集合,您希望從SelectedIndex屬性獲得什麼。它始終設置爲所選的第一個元素 – Steve