sphaxslayer
Messages postés216Date d'inscriptionmardi 5 avril 2005StatutMembreDernière intervention17 septembre 2008
-
10 mai 2005 à 11:16
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014
-
10 mai 2005 à 12:32
Salut tout l'monde, voilà j'ai une question qui parait bénine mais plutot importante pour moi: est-ce que quelqu'un saurait comment faire pour qu'une listBox défile automatiquement au fur et à mesure que les éléments y sont ajoutés ?
Je vous décris rapidement mon appli: la listeBox enregistre un historique des connexions et des déconnexions, donc à chaque nouvelle (de)connexion, hop, j'ajoute une ligne avec les infos et une ligne vide...mais le problème c'est que l'ajout se fait bien en bas de la liste, mais on voit toujours le haut, ça descend pas...j'ai fait en sorte qu'elle ne soit pas sélectionnable non plus, enfin les éléments qu'elle contient ne peuvent pas être sélectionnés...
Peut-être une solution: simuler l'événement d'un clic sur le bouton 'descendre' de la scrollBar ...? mais comment faire...?
Merci de votre aide !
"Un seul Être vous manque, et tout est dépeuplé..."
cs_yoannd
Messages postés305Date d'inscriptionlundi 7 janvier 2002StatutMembreDernière intervention10 août 20117 10 mai 2005 à 11:27
Tu as deux solutions :
Soit tu utilises la propriété SelectedIndex de ta list box et tu lui
donnes comme valeur MaListBox.Items.Count - 1. Ceci aura pour effet de
sélectionner le dernier élément de la liste et celà fera donc descendre
l'ascenseur automatiquement.
La seconde option est d'utiliser une ListView plutot qu'une listBox. Il
faut avant tout la mettre la propriété View sur Details et apprendre à
s'en servir correctement (si tu ne connais pas ce composant). Après,
lorsque tu veux ajouter un élément à ta liste, tu fais :
ListViewItem it = new ListViewItem();
it.Text = "test";
listView1.Items.Add(it);
it.EnsureVisible();
Ce que tu peux constater ici c'est le it.EnsureVisible, qui va provoquer un scroll de la liste jusqu'à l'élément en question...
Dernière précision, si ceci ne fonctionne pas, c'est parfois parceque
l'on traite la chose dans une boucle, ce qui peut figer l'affichage. Je
préconise donc un petit Application.DoEvents() juste après le
it.EnsureVisible();
sphaxslayer
Messages postés216Date d'inscriptionmardi 5 avril 2005StatutMembreDernière intervention17 septembre 2008 10 mai 2005 à 11:43
Bon ben merci j'ai testé avec le count, ca marche, mais je ne sais pas si ca conviendra à mon maitre de stage niveau ergonomique, auquel cas j'utiliserai la ListView qui me semble pas trop mal, bien que je n'y connaisse rien...merci en tous cas :)
"Un seul Être vous manque, et tout est dépeuplé..."
Vous n’avez pas trouvé la réponse que vous recherchez ?
sphaxslayer
Messages postés216Date d'inscriptionmardi 5 avril 2005StatutMembreDernière intervention17 septembre 2008 10 mai 2005 à 12:27
Coq, je te remercie, je garde ton info de coté car je ne sais pas du tout une seule chose sur les APIs, donc si mon tuteur me dis que c'est pas super, j'testerais l'une de vos 2 solutions à vous 2 :):) merci!
"Un seul Être vous manque, et tout est dépeuplé..."