2017-08-10 20 views
1

私はリストボックスで選択した項目のインデックスを取得しよう:私は2番目の項目を選択するとListBoxは選択されたインデックスを取得しますか?

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

はそれが再び私にインデックス0を返します。 ListBoxの充填

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

チェックを使用して、私は別のListBox – Jersono

+0

がありますだけで考えることができ、あなたがデータをバインド/挿入方法を使用を表示することができますリストボックスとは?あなたの実際のコードは意図したとおりに動作するはずです。 –

+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コレクションを使用することができます.SelectIndexプロパティから何を取得する予定ですか。選択された最初の要素に常に設定されます – Steve

関連する問題