C# - objet checkedlistbox

C# - objet checkedlistbox - C#/.NET managed - Programmation

Marsh Posté le 19-04-2005 à 19:39:10    

Salut tout le monde,
j'ai un p'tit soucis avec le control checklistbox dont je ne sais pas me servir.
Je l'alimente a partir d'une datasource.
Ensuite en cochant ou decochant une case, je voudrai pouvoir obtenir les infos de ma datasource associé a la ligne cochée.  
 
J'utilise l'evenement MouseDown qui me permet de connaitre l'index de l'element cliqué, mais apres je coince.
 
Si quelqu'un sait ca , merci


Message édité par liink le 19-04-2005 à 19:51:09
Reply

Marsh Posté le 19-04-2005 à 19:39:10   

Reply

Marsh Posté le 19-04-2005 à 20:24:20    

il suffit que la source que tu as associés à ton datasource soit une variable membre privée de la classe. Donc en ayant l'indice, il suffit de parcourir ta source jusqu'au même indice et récupérer les autres valeurs.
 
Enfin si tu veux une réponse plus simple, faudrait que tu me donne un peu plus de détails, car la euh comment dire, je sais pas exactement ce que tu veux. Je ne pense pas que l'évenement mousedown soit le plus approprié non plus :s

Reply

Marsh Posté le 20-04-2005 à 09:51:49    

moi23372 a écrit :

il suffit que la source que tu as associés à ton datasource soit une variable membre privée de la classe. Donc en ayant l'indice, il suffit de parcourir ta source jusqu'au même indice et récupérer les autres valeurs.
 
Enfin si tu veux une réponse plus simple, faudrait que tu me donne un peu plus de détails, car la euh comment dire, je sais pas exactement ce que tu veux. Je ne pense pas que l'évenement mousedown soit le plus approprié non plus :s


 
 
Mon code :  
 
pour alimenter ma checkedlistbox je lui associe une dataview (dataview) qui contient ma datasource :
checkedlistbox.DataSource = dataview;
 
Je lui indique que la valeur que je veux associer a ma ligne correspond a la colonne ID de ma datasource :
checkedlistbox.ValueMember = "ID";
 
 
Ensuite sur l'evenemenet mousedown je peux recuperer l'index de la ligne cliquée (e etant du type MouseEventArgs):
int index  = checkedlistbox.IndexFromPoint(e.X,e.Y);
 
 
Maintenant je voudrai la valeur de "ID" correspondant a la ligne cliquée , help  :cry:  
 

Reply

Marsh Posté le 20-04-2005 à 10:53:10    

Y'a mieux : l'évènement ItemCheck qui se déclenche aux checkage/décheckage d'un élément.

Reply

Marsh Posté le 20-04-2005 à 11:06:04    

ah merci, j'vais voir de ce cote

Reply

Marsh Posté le 20-04-2005 à 14:12:36    

moi23372 a écrit :

il suffit de parcourir ta source jusqu'au même indice et récupérer les autres valeurs.


 
 
Pour ca je vois le principe, je peux le faire, mais j'imaginais pouvoir me passer d'enregistrer ma source finalement, si y'a pas d'autres solution, je vais me resigner a faire ca.
En fait ma source a la base sert juste a alimenter mon checkedlistbox
 
Et sinon j'ai utilisé comme precisé par FlorentG l'evenement ItemCheck, et c'est carrement plus simple

Reply

Marsh Posté le 20-04-2005 à 14:32:17    

J'ai trouvé ! faut faire :
 
((DataRowView)(checkedlistbox.Items[e.Index]))["MA_COLONNE"]
 
et ca me permet de recuperer la colonne que je veux de ma datasource d'origine

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed