8
votes

DataGridView Colonne de la colonne Réorganisation de la colonne

i défini pour mon objet DataGridView xxx

Comment puis-je détecter la réorganisation de colonnes?


0 commentaires

6 Réponses :


0
votes

Je ne sais pas ce que vous essayez exactement d'atteindre. Si vous souhaitez ajouter un comportement de tri de colonne personnalisé, vous pouvez consulter Ce tutoriel sur personnalisable Tri de colonne .

Fondamentalement, vous attrapez l'événement MouseDown et vous regardez si l'utilisateur a cliqué sur une en-tête de colonne. S'il l'a fait et qu'il y a un événement qui lui est attribué, cela peut être exécuté.


0 commentaires

10
votes

traite de cet événement faire ce dont vous avez besoin?


2 commentaires

Je ne sais pas pourquoi cela est marqué aussi correct que ce n'est pas le cas. Cet événement sera viré dans de nombreuses autres circonstances, comme la réinitialisation de la table de données, etc.


Cela déclenche au moins deux fois pour chaque fois que l'utilisateur réorient les colonnes. Une fois pour le point de départ, une fois pour le point de fin, et une fois pour chaque colonne entre les deux. En fonction de ce que vous faites avec l'événement, cela pourrait être beaucoup de frais généraux.



3
votes

Je vous suggère ...

1 - Faites une variable INT statique.

2 - Affecter cette variable dans le gestionnaire :: ColonneHeaderMouseclick

3 - Choisissez votre ligne Avec cette variable dans le gestionnaire :: trié

exemple: xxx


0 commentaires

1
votes

Utilisez ColumnDisplayIndexchanged Event


1 commentaires

Il serait utile que vous puissiez fournir quelques détails sur la manière d'utiliser l'événement colonnedisplayindexchanged



6
votes

L'événement "Utiliser colonneDisplayIndexchanged" ressemble à la bonne. Cela a fonctionné pour moi. (J'ajouterais un commentaire que j'ai eu le représentant pour cela.)

Un gestionnaire d'événements pour cet événement contiendra E.Column reflétant la nouvelle valeur pour cette colonne. La propriété que vous recherchez est DisplayIndex. Notez que l'événement déclenchera pour chaque colonne qui avait changé DisplayIndex. P>

dans vb.net:

Private Sub dataAnts_ColumnDisplayIndexChanged(sender As Object, e As System.Windows.Forms.DataGridViewColumnEventArgs) Handles dataAnts.ColumnDisplayIndexChanged

    If bSortingColumns = False Then
        Debug.Print(e.Column.DisplayIndex & vbTab & e.Column.Name)
    End If

End Sub


0 commentaires

0
votes

La meilleure option que j'ai trouvée était de mettre du code dans l'événement CellMouseUp. Lorsqu'un utilisateur glisse une colonne et chute, l'événement CellMouseUp sera appelé après que les colonnes ont été réarrangées.

colonneDisplayindexchanged est appelé trop souvent, y compris lorsque le formulaire est initialisé, ce qui peut causer des problèmes en fonction de ce que vous avez besoin de l'événement.


0 commentaires