Masquer les colonnes d'une ListView [Résolu]

cs_syl2 49 Messages postés lundi 19 mai 2003Date d'inscription 7 juillet 2005 Dernière intervention - 11 déc. 2004 à 15:26 - Dernière réponse : cs_syl2 49 Messages postés lundi 19 mai 2003Date d'inscription 7 juillet 2005 Dernière intervention
- 18 déc. 2004 à 12:39
Bonjour,

Je cherche comment masquer les colonnes d'une ListView. Je crois que ce n'est pas possible en tant que tel, et c'est la raison pour laquelle je me suis décidé à "tout simplement" empêcher le redimensionnement de mes colonnes.

Le problème, c'est que une fois que j'ai effectué cet empêchement de redimensionner, je ne peux plus cliquer sur les entêtes de mes colonnes pour effectuer un tri ascendant ou descendant. (l'événement sur le clic n'est plus opérationnel)

Le code de trie est bon, le code de blocage de redimensionnement est bon, mais je n'arrive pas à utiliser les 2 en même temps.

Merci à tous pour votre aide

Slyv

Voici un peu de code :

[using]
namespace Agenda
{
public class appPrincipal : System.Windows.Forms.Form
{
private MaListView listView1;
private ListViewColumnSorter lvwColumnSorter;
[?]
private void InitializeComponent()
{
this.listView1 = new MaListView();
this.listView1.ColumnClick += new System.Windows.Forms.ColumnClickEventHandler(this.listView1_ColumnClick);

this.listView1.ListViewItemSorter=new ListViewColumnSorter();
}
[...]
private void listView1_ColumnClick(object sender, System.Windows.Forms.ColumnClickEventArgs e)
{
}

public class MaListView : ListView

{

public const int WM_NOTIFY = 0x4E;
public const int HDN_FIRST = -300;
public const int HDN_BEGINTRACKA = HDN_FIRST - 6;
public const int HDN_BEGINTRACKW = HDN_FIRST - 26;
[StructLayout(LayoutKind.Sequential)]
public struct NMHDR
{
public int hwndFrom;
public int idFrom;
public int code;
}
protected override void WndProc(ref Message m)
{
switch (m.Msg)
{
case WM_NOTIFY:
{

NMHDR nmh = (NMHDR) m.GetLParam(typeof (NMHDR));
if (nmh.code HDN_BEGINTRACKA || nmh.code HDN_BEGINTRACKW)
{

m.Result = new IntPtr(-1);

}

}
break;
default:

base.WndProc (ref m);
break;

}

}

}
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 13 déc. 2004 à 12:09
3
Merci
pourquoi ne pas plutot trier dans une collection séparée puis ajouter les items dans l'ordre dans ton listview ensuite, avec seulement les données qui doivent être visibles par l'utilisateur ?

Cocoricoooooooo !!!!
coq
MVP Visual C#

Merci cs_coq 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de cs_coq
cs_syl2 49 Messages postés lundi 19 mai 2003Date d'inscription 7 juillet 2005 Dernière intervention - 11 déc. 2004 à 15:32
0
Merci
(Re) bonjour,

J'ai mis le code sur un lien internet pour que ce soit plus lisible
http://ffadventure.free.fr/code.html

Slyv
Commenter la réponse de cs_syl2
cs_Bidou 5507 Messages postés dimanche 4 août 2002Date d'inscription 20 juin 2013 Dernière intervention - 13 déc. 2004 à 08:16
0
Merci
Pour masquer une colonne, pourquoi ne pas donner la valeur 0 à sa taille ? (juste une petite idée comme ça...)
Commenter la réponse de cs_Bidou
cs_syl2 49 Messages postés lundi 19 mai 2003Date d'inscription 7 juillet 2005 Dernière intervention - 13 déc. 2004 à 11:39
0
Merci
Salut,

j'ai déjà ma colonne en taille 0, donc elle n'est pas visible par l'utilisateur, mais je voudrais bloquer le redimensionnement des colonnes pour pas que mes 2 colonnes utiles pour le trie soit visible pour l'utilisateur.

Parallèlement à cela, sur mes autres colonnes, j'ai besoin d'effectuer un trie de façon ascendante ou descendante sur mes différentes colonnes.

Donc ceci est plus dans un but de ne pas permettre à l'utilisateur de pouvoir faire n'importe quoi :)

Sylvain
Commenter la réponse de cs_syl2
cs_syl2 49 Messages postés lundi 19 mai 2003Date d'inscription 7 juillet 2005 Dernière intervention - 18 déc. 2004 à 12:39
0
Merci
Salut,

Merci pour vos réponses et merci à toi, le coq pour ta proposition.

C'est effectivement la solution que j'ai choisit et cela marche parfaitement !!!!

Bon week end à vous et bonnes fêtes de fin d'année.

Slyv
Commenter la réponse de cs_syl2

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.