mastereur
Messages postés37Date d'inscriptionjeudi 17 mai 2007StatutMembreDernière intervention26 décembre 2010
-
21 avril 2009 à 14:57
mastereur
Messages postés37Date d'inscriptionjeudi 17 mai 2007StatutMembreDernière intervention26 décembre 2010
-
22 avril 2009 à 10:21
Bonjour,
Je travail sur une listview contenant 3 colonnes et lors d'un double clic sur une ligne, je crée une box (numericUpDown / textBox / listBox) selon l'information.
Mon problème est le suivant, lorsque ma listview dépasse la taille de la fenêtre, une scroll horizontale apparait.
Donc lorsque je me déplace de gauche à droite, ma box aussi. y aurait t-il un moyen de garder la box au même endroit.
mastereur
Messages postés37Date d'inscriptionjeudi 17 mai 2007StatutMembreDernière intervention26 décembre 2010 22 avril 2009 à 10:21
J'ai trouvé:
Sujet: "il faut ré-écrire une Listview. Mais de toutes facons, il semble que ce
soit la seule solution possible vu que ce controle n'existe pas dans les
listview par défaut."
En implémentant la listview du code fournis ici on fait la gestion de la postion avec ces nouveaux events
this.HScrollChanged += new ScrollEventHandler(this.liste_HScrollChanged);
this.VScrollChanged += new ScrollEventHandler(this.liste_VScrollChanged);
le code des evenements:
void liste_VScrollChanged(object sender, ScrollEventArgs e)
{
positionX = ...
positionY= ...
if (e.OldValue - e.NewValue > 0) // vers le haut
editBox.Location = new System.Drawing.Point(positionX, positionY + e.NewValue);
else // vers le bas
editBox.Location = new System.Drawing.Point(positionX, positionY - e.NewValue);
}
void liste_HScrollChanged(object sender, ScrollEventArgs e)
{
positionX = ...
positionY= ...
if(e.OldValue - e.NewValue > 0)// vers la gauche
editBox.Location = new System.Drawing.Point(positionX + e.NewValue, positionY);
else // vers la droite
editBox.Location = new System.Drawing.Point(positionX - e.NewValue, positionY);
}