comment puis-je sélectionner cinq éléments dans le seul clic sur la liste? si je clique sur un élément, je veux juste +2 et -2 de l'index sélectionné. mon simple clic doit donc sélectionner cinq éléments dans la liste. Utilisez C# (WPF).mulit select listbox dans wpf
Répondre
Je ne suis pas sûr de ce que vous voulez faire exactement, mais en essayant. =)
Jetez un oeil à l'événement Click de la ListBox. Vous pouvez faire n'importe quoi, y compris choisir cinq articles de votre choix. Vous pouvez le faire comme ça (non testé, mais vous donne une idée):
int sindex = listBox1.SelectedIndex;
listBox1.SelectedItems.Clear();
for(int i = Math.Max(sindex - 2, 0); i < Math.Min(sindex + 2, listBox1.Items.Count()), i++)
{
listBox1.SelectedItems.Add(listBox1.Items[i]);
}
Une autre chose allait mettre le SelectionMode à multiples ou étendues. Cela entraîne-t-il le comportement que vous recherchez?
je vérifie avec le multiple et étendre, il me permet de sélectionner plusieurs éléments, mais son pas comme je l'ai dit, si je clique sur des éléments, je veux juste +2 et -2 de l'index sélectionné. donc mon seul clic doit sélectionner cinq éléments dans la liste .. je pense que vous pouvez me comprendre maintenant ?? tu as une idée ??? –
@deep: Voir mes réponses modifiées. – Jens
un coup d'oeil à l'événement selectionChanged, et l'index de l'élément et de le rendre +2 et -2 je l'ai essayé comme ça et il fonctionne sélectionné:
void list_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
int idx = list.SelectedIndex;
int startIdx = idx - 2;
int endIdx = idx + 2;
if (startIdx < 0)
{
startIdx = 0;
}
if (endIdx >= list.Items.Count)
{
endIdx = list.Items.Count-1;
}
for (int i = startIdx; i <= endIdx; i++)
{
if (i != idx)
{
list.SelectedItems.Add(list.Items[i]);
}
}
}
un problème avec ce code est vous pouvez toujours utiliser ctrl pour sélectionner un autre élément afin qu'il augmente le nombre d'éléments sélectionnés
quel code avez-vous essayé jusqu'à présent? –
J'essaye juste de boucler une fonction dans le clic de souris comme ceci .. int selitem = listBox1.SelectedIndex; int i = selitem; pour (i = 0; i <= (selitem + 5); i ++) { listBox1.SelectedIndex = i; } Mais cela ne fonctionne pas, il sélectionne le dernier élément seulement, je mets à SelectionMode à plusieurs, mais même je ne peux pas le faire fonctionner –