begin process at 2012 02 09 12:32:30
  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 :14 096

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) GETSYSTEMTIME ET SETSYSTEMTIME par Arnotic
Source avec Zip Source avec une capture Source .NET (Dotnet) [SILVERLIGHT] UN GÉNÉRATEUR INTERACTIF D'ARBRES DE HUFFMAN par loudadyassine
Source avec Zip Source .NET (Dotnet) [C#2008] OBSERVER L'ACTIVITÉ INPUT (CLAVIER SOURIS) DE L'UTI... par PCPT
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

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture GESTION DE TACHES par thebigboss
Source avec Zip Source avec une capture Source .NET (Dotnet) EXPLORATEUR DE DOSSIERS ET FICHIERS par Yanith
Source avec Zip Source avec une capture Source .NET (Dotnet) EDITEURXML par dodo7263
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) 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 : 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 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 Image dans le subitem d'une listview?? [ par baptaker ] Bonjour tout le monde enfaite voila mon problème j'aimerais afficher un petit smiley a coté d'un texte dans les subtitem de ma listview mais je n'y ar MessageBox personnaliser [ par vagg ] Bonjour à tous,Je sais qu'il est possible de créer sa propre messagebox sans pour autant créer un formulaire.Je voudrais pour mon application ouvrir u probleme avec Listview, ajout dans d'autre colonne à partir de bdd ACCESS [ par joker91170 ] Bonjour, Je souhaite afficher les informations à partir de ma base de données Access dans une Listview.J'utilise un DataReader pour extraire les infor Listview et ImageList [ par Juju1988 ] Bonjour,Je débute en C# et j'ai un petit problème. J'ai un dossier Img dans lesquels se trouvent 4 images .jpg. J'ai ensuite une base de données Acces


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

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 : 1,669 sec (4)

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