|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
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
Sources en rapport avec celle ci
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
ListView : Ajouter des éléments (C#) [ par Wolf ]
Voilà mon problème :Comment faire pour ajouter des éléments dans une ListView pendant l'exécution du programme?J'avais pensé faire ça ds la fonction O
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version

LG KP501
Entre 9€ et 159€
|