2017-08-10 121 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