|
|
|||||||||||
|
Pour faire un rapide point sur les possibilité de ce contrôle, je vous invite à lire l'article de présentation le concernant dans la rubrique eVB de CodePPC. Que ce soit en VB.NET, en C#, en C++ ou en eVB le contrôle ListView reste globalement le même et permet globalement les mêmes choses.
Bon, qu'à cela ne tienne, après un petit détours par l'aide en ligne de eVC++ (toujours très utile cette aide en ligne, même quand on développe en VB.NET avec VS 2003) j'ai appris que par défaut un Listview est multiselect et qu'il faut forcer la mono sélection ! Ca veut dire que notre contrôle Listview a été intentionnellement limité ! Là, je ne comprends plus rien. Je vais d'ailleurs faire mon enquête à ce propos auprès de Microsoft et je vous tiendrai au courant.
La solution consiste à enlever le style qui force le Listview à être mono sélection. Pour cela nous avons besoin de récupérer le handle du Listview à modifier. Nous allons utiliser la même méthode que dans l'article qui explique comment forcer un Textbox à n'accepter que des chiffres. Je vous invite à le lire pour bénéficier du détail des opérations. Pour résumer, nous allons récupérer le handle du Listview grâce à l'API "GetFocus" et ensuite lire le style du Listview avec "GetWindowLong", le modifier pour rendre le contrôle multiselect puis le réinjecter dans le contrôle avec "SetWindowLong". C'est aussi simple que ça (les développeurs C++ font ça tout le temps).
Note : Pour rendre notre Listview multiselect, nous devons lui enlever le style LVS_SINGLESEL (la présence de ce style par défaut est un gros sobotage !. Bon là je me répète c'est certain, mais je suis en colère, donc c'est normal).
Voici le code de notre petite fonction :
Vous pouvez utiliser cette fonction dans l'événement "Load" de la Form, ainsi vous êtes certain que l'application sera effectuée une seule fois. Cette fonction retourne "True" si elle réussit à donner le focus au Listview et à lui appliquer le style.
Le plus fort dans l'histoire, c'est que vous pouvez sans aucun problème récupérer tous les items sélectionnés en consultant la collection "SelectedIndices" qui reflète à merveille la situation réelle.
|
|||||||||||
|
Copyright 2001-2004 - Tous droits réservés Toutes les autres marques et produits présents dans ces pages sont la propriété exclusive de leurs sociétés respectives. |