Accueil > > > LISTVIEWEX : TOUT SELECTIONNER , TOUT DESELECTIONNER
LISTVIEWEX : TOUT SELECTIONNER , TOUT DESELECTIONNER
Information sur la source
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
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
ListView et couleur selection items [ par YLSEAGLE ]
Bonjour à tous. Je cherche à changer la couleur de sélection d'un item dans une listview. Par dé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
|
Derniers Blogs
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|