2009-06-01 7 views
0

J'ai une zone de liste avec des éléments comme A B C D E.
J'ai également deux boutons Déplacer vers le haut et Descendre avec lui.
J'ai déjà rendu leurs propriétés false dans la fenêtre de propriétés (F4).Comment trouver une position particulière d'un élément sélectionné dans Listbox en rendant les boutons activés en C#?

Lorsqu'un utilisateur sélectionne B ou tous les éléments ci-dessous, mon bouton Monter vers le haut doit être activé. Elle doit être désactivée pour l'élément A

De la même manière, mon bouton Descendre doit être activé lorsque l'utilisateur sélectionne D ou tous les éléments situés au-dessus. Il doit être désactivé pour E.

Pouvez-vous me fournir la bonne partie du code à écrire ici.

Merci ....

Répondre

0

Je fais une chose similaire dans mon application. Il gère également la sélection de plusieurs éléments et vérifie également si les éléments multiples sélectionnés sont continus ou non.

Voici le code:

private bool SelectionIsContiguous(ListBox lb) 
{ 
    for (int i = 0; i < lb.SelectedIndices.Count - 1; i++) 
     if (lb.SelectedIndices[i] < lb.SelectedIndices[i + 1] - 1) 
      return false; 

    return true; 
} 

private void SetMoveButtonStates() 
{ 
    if (this.listBox.SelectedIndices.Count > 0) 
    { 
     if (this.listBox.SelectedIndices.Count > 1 && !SelectionIsContiguous(this.listBox)) 
     { 
      this.btnMoveUp.Enabled = false; 
      this.btnMoveDown.Enabled = false; 
      return; 
     } 

     int firstSelectedIndex = this.listBox.SelectedIndices[0]; 
     this.btnMoveUp.Enabled = firstSelectedIndex == 0 ? false : true; 

     int lastIndex = this.listBox.Items.Count - 1; 
     int lastSelectedIndex = this.listBox.SelectedIndices[this.listBox.SelectedIndices.Count - 1]; 
     this.btnMoveDown.Enabled = lastSelectedIndex == lastIndex ? false : true; 
    } 
} 
+0

Salut Rashmi, Merci pour la réponse une chose que je voulais poser. Je veux sélectionner un fichier de ma liste par exemple A ci-dessus.den je veux activer mon bouton pour cela que j'ai écrit ceci if (m_lbOPFfiles.SelectedIndex == 0) { m_BtnValidateInput.Enabled = true; } maintenant sur la sélection Un seul bouton est activé alors que je veux en sélectionnant l'un des fichiers comme B C D E il shud être activé.J'ai écrit la partie ci-dessus dans SelectIndex Changed Clik Event. Pouvez-vous aider les wats mal ?? –

+0

Si je comprends bien votre problème, alors vous devez faire ceci: ..... if (m_lbOPFfiles.SelectedIndex> = 0) {m_BtnValidateInput.Enabled = true; } .... espère que cela aide :) –

+0

Merci, il a travaillé ... Cordialement Shweta .. –

0

gérer l'événement SelectedIndexChanged de la zone de liste. Si SelectedIndex est supérieur à 0, activez "remonter". Si elle est inférieure à compter - 1, activez l'option « déplacer vers le bas »

0

Voici le code que j'utilise dans listBox_SelectedIndexChanged:

this.moveUp.Enabled = this.listBox.SelectedIndex > 0; 
this.moveDown.Enabled = this.listBox.SelectedIndex > -1 && listBox.SelectedIndex < listBox.Items.Count - 1; 

En fait, il est dans une méthode appelée à partir de là que l'on appelle quand initialisées de la boîte de dialogue trop le code .

Questions connexes