begin process at 2010 02 10 05:28:17
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

API

 > LISTVIEWEX : TOUT SELECTIONNER , TOUT DESELECTIONNER

LISTVIEWEX : TOUT SELECTIONNER , TOUT DESELECTIONNER


 Information sur la source

Note :
6 / 10 - par 3 personnes
6,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :API Source .NET ( DotNet ) Classé sous :listview, sélection Niveau :Initié Date de création :17/02/2004 Vu :11 906

Auteur : TheSaib

Ecrire un message privé
Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note

 Description

- ListView Derivé pour ajouter deux fonctions de base mais très pratique

Tout selectionner et inversement en utilisant les API win32

Source

  • using System;
  • using System.ComponentModel;
  • using System.Collections;
  • using System.Diagnostics;
  • using System.Runtime.InteropServices;
  • namespace ListViewEx
  • {
  • /// <summary>
  • /// Description résumée de ListViewEx.
  • /// </summary>
  • public class ListViewEx : System.Windows.Forms.ListView
  • {
  • [DllImport("user32.dll")]
  • public static extern bool SendMessage(IntPtr hWnd, ListViewMessages msg,
  • Int32 wParam, ref LV_ITEM lParam);
  • #region LV_ITEM
  • [StructLayoutAttribute(LayoutKind.Sequential)]
  • public struct LV_ITEM
  • {
  • public ListViewItemFlags mask;
  • public Int32 iItem;
  • public Int32 iSubItem;
  • //public ListViewItemStates state;
  • public ListViewItemStates state;
  • public ListViewItemStates stateMask;
  • public String pszText;
  • public Int32 cchTextMax;
  • public Int32 iImage;
  • public IntPtr lParam;
  • public Int32 iIndent;
  • }
  • #endregion
  • #region ListViewItem States / LVIS
  • /// <summary>
  • /// ListViewItemState / LVIS
  • /// </summary>
  • public enum ListViewItemStates : int
  • {
  • NOSTATE = 0x0000,
  • FOCUSED = 0x0001,
  • SELECTED = 0x0002,
  • CUT = 0x0004,
  • DROPHILITED = 0x0008,
  • GLOW = 0x0010,
  • ACTIVATING = 0x0020,
  • OVERLAYMASK = 0x0F00,
  • STATEIMAGEMASK = 0xF000,
  • }
  • #endregion
  • #region LVM
  • public enum ListViewMessages : int
  • {
  • FIRST = 0x1000,
  • SCROLL = FIRST + 20,
  • GETITEM = FIRST + 75,
  • SETITEM = FIRST + 76,
  • GETITEMTEXTW = FIRST + 115,
  • SETCOLUMNWIDTH = FIRST + 30,
  • LVSCW_AUTOSIZE = -1,
  • LVSCW_AUTOSIZE_USEHEADER= -2,
  • SETITEMSTATE = FIRST + 43,
  • INSERTITEMA = FIRST + 77,
  • DELETEITEM = FIRST + 8,
  • GETITEMCOUNT = FIRST + 4,
  • GETCOUNTPERPAGE = FIRST + 40,
  • GETSUBITEMRECT = FIRST + 56,
  • SUBITEMHITTEST = FIRST + 57,
  • GETCOLUMN = FIRST + 25,
  • SETCOLUMN = FIRST + 26,
  • GETCOLUMNORDERARRAY = FIRST + 59,
  • SETCOLUMNORDERARRAY = FIRST + 58,
  • SETEXTENDEDLISTVIEWSTYLE= FIRST + 54,
  • GETEXTENDEDLISTVIEWSTYLE= FIRST + 55,
  • EDITLABELW = FIRST + 118,
  • GETITEMRECT = FIRST + 14,
  • HITTEST = FIRST + 18,
  • GETEDITCONTROL = FIRST + 24,
  • CANCELEDITLABEL = FIRST + 179,
  • GETHEADER = FIRST + 31,
  • REDRAWITEMS = FIRST + 21,
  • GETSELECTIONMARK = FIRST + 66,
  • SETSELECTIONMARK = FIRST + 67,
  • ENSUREVISIBLE = (FIRST + 19),
  • }
  • #endregion LVM
  • #region ListViewItem Flags / LVIF
  • /// <summary>
  • /// ListViewItem Flags / LVIF
  • /// </summary>
  • public enum ListViewItemFlags : int
  • {
  • TEXT = 0x0001,
  • IMAGE = 0x0002,
  • PARAM = 0x0004,
  • STATE = 0x0008,
  • INDENT = 0x0010,
  • NORECOMPUTE = 0x0800,
  • GROUPID = 0x0100,
  • COLUMNS = 0x0200,
  • }
  • #endregion
  • private System.ComponentModel.Container components = null;
  • public ListViewEx(System.ComponentModel.IContainer container)
  • {
  • container.Add(this);
  • InitializeComponent();
  • }
  • public ListViewEx()
  • {
  • InitializeComponent();
  • this.FullRowSelect = true;
  • }
  • protected override void Dispose( bool disposing )
  • {
  • if( disposing )
  • {
  • if(components != null)
  • {
  • components.Dispose();
  • }
  • }
  • base.Dispose( disposing );
  • }
  • #region Code généré par le Concepteur de composants
  • /// <summary>
  • /// Méthode requise pour la prise en charge du concepteur - ne modifiez pas
  • /// le contenu de cette méthode avec l'éditeur de code.
  • /// </summary>
  • private void InitializeComponent()
  • {
  • components = new System.ComponentModel.Container();
  • }
  • #endregion
  • public void SelectAll ()
  • {
  • LV_ITEM lv = new LV_ITEM();
  • lv.mask = ListViewItemFlags.STATE;
  • lv.state = ListViewItemStates.SELECTED ;
  • lv.stateMask = ListViewItemStates.SELECTED;
  • SendMessage(this.Handle,ListViewMessages.SETITEMSTATE,-1,ref lv);
  • }
  • public void UnselectAll()
  • {
  • LV_ITEM lv = new LV_ITEM();
  • lv.state = ListViewItemStates.NOSTATE;
  • lv.mask = ListViewItemFlags.STATE ;
  • lv.stateMask = ListViewItemStates.SELECTED;
  • SendMessage(this.Handle,ListViewMessages.SETITEMSTATE, -1, ref lv);
  • }
  • }
  • }
using System;
using System.ComponentModel;
using System.Collections;
using System.Diagnostics;
using System.Runtime.InteropServices;

namespace ListViewEx
{
	/// <summary>
	/// Description résumée de ListViewEx.
	/// </summary>
	public class ListViewEx : System.Windows.Forms.ListView 
	{
		[DllImport("user32.dll")]
		public static extern bool SendMessage(IntPtr hWnd, ListViewMessages msg,
			Int32 wParam, ref LV_ITEM lParam);
		

		#region LV_ITEM
		[StructLayoutAttribute(LayoutKind.Sequential)]
		public struct LV_ITEM
		{
			public ListViewItemFlags mask;
			public Int32 iItem;
			public Int32 iSubItem;
			//public ListViewItemStates state;
			public ListViewItemStates state;
			public ListViewItemStates stateMask;
			public String pszText;
			public Int32 cchTextMax;
			public Int32 iImage;
			public IntPtr lParam;
			public Int32 iIndent;
		}
		#endregion

		#region ListViewItem States / LVIS
		/// <summary>
		/// ListViewItemState / LVIS
		/// </summary>
		public enum ListViewItemStates : int
		{
			NOSTATE			   = 0x0000,
			FOCUSED            = 0x0001,
			SELECTED           = 0x0002,
			CUT                = 0x0004,
			DROPHILITED        = 0x0008,
			GLOW               = 0x0010,
			ACTIVATING         = 0x0020,
			OVERLAYMASK        = 0x0F00,
			STATEIMAGEMASK     = 0xF000,
		}
		#endregion
		#region LVM
		public enum ListViewMessages : int
		{
			FIRST				= 0x1000,
			SCROLL				= FIRST + 20,
			GETITEM				= FIRST + 75,
			SETITEM				= FIRST + 76,
			GETITEMTEXTW		= FIRST + 115,
			SETCOLUMNWIDTH		= FIRST + 30,
			LVSCW_AUTOSIZE			= -1,
			LVSCW_AUTOSIZE_USEHEADER= -2,
			SETITEMSTATE		= FIRST + 43,
			INSERTITEMA			= FIRST + 77,
			DELETEITEM			= FIRST + 8,
			GETITEMCOUNT		= FIRST + 4,
			GETCOUNTPERPAGE		= FIRST + 40,
			GETSUBITEMRECT		= FIRST + 56,
			SUBITEMHITTEST		= FIRST + 57,
			GETCOLUMN			= FIRST + 25,
			SETCOLUMN			= FIRST + 26,
			GETCOLUMNORDERARRAY	= FIRST + 59,
			SETCOLUMNORDERARRAY	= FIRST + 58,
			SETEXTENDEDLISTVIEWSTYLE= FIRST + 54,
			GETEXTENDEDLISTVIEWSTYLE= FIRST + 55,
			EDITLABELW			= FIRST + 118,
			GETITEMRECT        = FIRST + 14,
			HITTEST            = FIRST + 18,
			GETEDITCONTROL     = FIRST + 24,
			CANCELEDITLABEL	   = FIRST + 179,
			GETHEADER          = FIRST + 31,
			REDRAWITEMS        = FIRST + 21,
			GETSELECTIONMARK   = FIRST + 66,
			SETSELECTIONMARK   = FIRST + 67,
			ENSUREVISIBLE       = (FIRST + 19),
		}
		#endregion LVM
		#region ListViewItem Flags / LVIF
		/// <summary>
		/// ListViewItem Flags / LVIF
		/// </summary>
		public enum ListViewItemFlags : int
		{
			TEXT               = 0x0001,
			IMAGE              = 0x0002,
			PARAM              = 0x0004,
			STATE              = 0x0008,
			INDENT             = 0x0010,
			NORECOMPUTE        = 0x0800,
			GROUPID            = 0x0100,
			COLUMNS            = 0x0200,
		}
		#endregion
		private System.ComponentModel.Container components = null;

		public ListViewEx(System.ComponentModel.IContainer container)
		{
			container.Add(this);
			InitializeComponent();
		}

		public ListViewEx()
		{
			InitializeComponent();
			this.FullRowSelect = true;
		}

			protected override void Dispose( bool disposing )
		{
			if( disposing )
			{
				if(components != null)
				{
					components.Dispose();
				}
			}
			base.Dispose( disposing );
		}


		#region Code généré par le Concepteur de composants
		/// <summary>
		/// Méthode requise pour la prise en charge du concepteur - ne modifiez pas
		/// le contenu de cette méthode avec l'éditeur de code.
		/// </summary>
		private void InitializeComponent()
		{
			components = new System.ComponentModel.Container();
		}
		#endregion

		public void SelectAll ()
		{
			LV_ITEM lv = new LV_ITEM();
			lv.mask = ListViewItemFlags.STATE;
			lv.state = ListViewItemStates.SELECTED ;
			lv.stateMask = ListViewItemStates.SELECTED;
			SendMessage(this.Handle,ListViewMessages.SETITEMSTATE,-1,ref lv);
		}

		public void UnselectAll()
		{
			LV_ITEM lv = new LV_ITEM();
			lv.state = ListViewItemStates.NOSTATE;
			lv.mask = ListViewItemFlags.STATE ;
			lv.stateMask = ListViewItemStates.SELECTED;
			SendMessage(this.Handle,ListViewMessages.SETITEMSTATE, -1, ref lv);
		}

	}
}

 Conclusion

C'est simple mais ca peut servir et c'est toujours plus rapide qu'une boucle :>


 Sources du même auteur

Source .NET (Dotnet) CHANGER L'HEURE SYSTEME
Source .NET (Dotnet) NOTRESIZABLELISTVIEW : FIGER LA LARGEUR DES COLONNES
Source .NET (Dotnet) CURRENCY TEXTBOX - TEXTBOX DE SAISIE DE MONTANT.
Source avec Zip Source avec une capture Source .NET (Dotnet) [.NET2] ETAT DU TRAFFIC ROUTIER
Source avec Zip Source .NET (Dotnet) DETECTION EVENEMENT USB (CONNECTION / DECONNECTION)

 Sources de la même categorie

Source avec Zip Source avec une capture Source .NET (Dotnet) UTILISATION DE L'API VIRTUAL DISK IMAGE DE WINDOWS 7 par Willi
Source avec Zip Source .NET (Dotnet) CHESS GAME CORE - LIBRAIRIE JEU D'ÉCHEC EN C# par Bidou
Source .NET (Dotnet) CHANGER LA RESOLUTION DE VOTRE ECRAN, UTILISATION DES API WI... par mechtaly
Source avec Zip Source .NET (Dotnet) CRÉER SON PROPRE DESIGNER COMME CELUI DE VISUAL STUDIO par ShareVB
Source avec Zip Source .NET (Dotnet) CSVSHARP. DLL D'IMPORT/EXPORT DE CONTENU AU FORMAT CSV par heriquet

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) UITYPEEDITOR HACKING, PROPERTYGRID ET LISTVIEW CONFIGURABLES... par gourky
Source avec Zip Source avec une capture Source .NET (Dotnet) [WPF]LINQUERY - INTERFACE DE GESTION DE DATABASE par Nenyan
Source avec Zip Source .NET (Dotnet) LISTVIEW : TRI MONO OU MULTICOLONNES PROGRAMMÉ OU PAR CLICK ... par LuisL
Source avec Zip Source avec une capture Source .NET (Dotnet) CUSTOMLISTBOX -> METTEZ CE QUE VOUS VOULEZ (PROGRESSBAR, GRO... par Julien237
Source avec Zip Source avec une capture Source .NET (Dotnet) SELECTION COULEUR LISTVIEW par Bidou

Commentaires et avis

Commentaire de TheSaib le 17/02/2004 13:39:00 administrateur CS

Bien entendu toutes les constantes ne sont pas nécessaires.
Et pour ceux qui ne l'avait pas remarqué il s'agit d'un composant derivé du ListView ...

Commentaire de Kangoo06 le 19/02/2004 21:35:51

Ceci dit, ce code peut servir de base pour implémenter plein d'autres fonctionnalités, comme le rendu d'un élément selectionné (entièrement bleuté ou juste la bordure ... ;o) ) C'est quand même vachement bien le SendMessage !

Commentaire de TheSaib le 20/02/2004 00:43:09 administrateur CS

clair , d'ailleurs si tu as fais un composant plus complet tu peux le mettre :)

Commentaire de Mike le 16/06/2004 09:49:54

euj, j'arrive p'être un peut tard lol, mais t'as remarque m'interesse kangoo06. En fait en ce moment j'essai de changer la couleur de la ligne séléctionnée, mais je n'y arrive pas ? apparament on doit pouvoir le faire avec cette API, mais quelle proprieté utiliser et comment définir la couleur ??
Merci d'avance ;-)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

ListView et couleur selection items [ par YLSEAGLE ] Bonjour &#224; tous. Je cherche &#224; changer la couleur de s&#233;lection d'un item dans une listview. Par d&#233;faut, celle ci est de couleur bleu Sélection automatique d'1 item dans la listView [ par oboudou ] Bonjour,J'aimmerais sélectionner "par la programmation" un item dans la listView. Ex : J'aimerais que dans ma listeView ma troisieme ligne soit sélect Forms.ListView, SelectedIndexChanged et clignotement [ par MyXiLo ] Bonsoir.L'évènement SelectedIndexChanged se déclenche lorsque la sélection dans un ListView change. Le problème est que lorsqu'un Item est déjà select listview sélection étendue [ par parabolus ] Bonjour J'ai une listview, (View=Details, Multiselect=true, FullRowSelect=true). Quand je pointe la souris sur une ligne et que je la déplace ensuite ListView et checkbox, contrainte de sélection [ par vagg ] Bonjour à tous,J'ai actuellement une ListView en mode Détails !dans cette ListView j'ai plusieurs objets qui sont cochable par des Checkbox, parcontre ListView : Image bleu pendant la sélection d'un item [ par EmacLi ] Bonjour à tous, J'ai remarqué que lors de la sélection d'un item dans une listview, l'image est aussi sélectionné en bleu. Comportement que n'a appar Replir une listvieuw rapidement et efficacement [ par VladDracula ] Bonjour,je voudrais savoir qu'elle est la meilleur solution pour remplir une listview ?Je m'explique : j'ai 3 colonnes (ID, nom, level ) et j'ai a ma Afficher le contenu de listview ligne par ligne [ par sandra22 ] Bonjour,Comment afficher le contenu de listview ligne par ligne? Parceque la recherche prendra du temps, je veux qu'une fois les informations d'une li interaction entre deux forms [ par Toxic64 ] Bonjour, Ma question est assez simple et j'imagine que la réponse l'est aussi mais étant débutant en C#,je seche. Voici la problèmatique: Dans un p Trouvé une chaine dans un listview [ par aurel16 ] Bonjour, Après avoir appris le vb.net, je me lance au c#. J'ai créé une listview qui contient des données. Je voudrais savoir si le texte des items c


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,889 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales