2010-02-12 7 views
-1

Je vais avoir la liste et l'obtention de l'élément sélectionné. Le code estDonner SelectedIndex -1 dans ListBox

private void listBox1_SelectionChanged(object sender, SelectionChangedEventArgs e) 
     { 
      int index = listBox1.SelectedIndex; 
      string str =""; 
      if (index == 0) 
      { 
       str = (string)Text1.Text; 
      } 
      else if (index == 1) 
      { 
       str = (string)Text2.Text; 
      } 
      else if (index == 2) 
      { 
       str = (string)Text3.Text; 
      } 
      MessageBox.Show(str); 
      // listBox1.SelectedIndex = -1;    
     } 

Par ce code ci-dessus, après avoir sélectionné un élément, barre de couleur bleue affiche dans l'élément sélectionné, pour éviter que j'ai donné listBox1.SelectedIndex = -1;. Si j'ai donné cette fonction est exécuté deux fois. Et la boîte de message montre la chaîne vide. Pourquoi cela se passe-t-il? Comment puis-je éviter cela?

Répondre

0

construction try comme ceci:

listBox1.SelectionChanged -= listBox1_SelectionChanged; 
listBox1.SelectedIndex = -1; 
listBox1.SelectionChanged += listBox1_SelectionChanged; 

listBox1.SelectedIndex appelle événement SelectionChanged si cette fonction est appelée deux fois.

+0

Oui..son travail.Merci. – Anu

Questions connexes