| ||
auteur : swoög | ||
Il suffit simplement d'utiliser une méthode native des DataGrid : (On suppose que MyDG est un DataGrid fonctionnel & Num_Row un entier contenant l'index de la colonne)
|
| ||
auteur : neguib | ||
La Classe System.Windows.Forms.DataGrid.HitTestInfo vous permet de déterminer la partie d'un contrôle DataGrid sur laquelle l'utilisateur a cliqué.
Pour ce faire, vous avez besoin d'utiliser la méthode HitTest du Datagrid que nous nommons ici pour l'exemple 'DG' :
| ||
lien : ![]() |
| ||
auteur : crjo | ||
On suppose que le DataGrid est associé à une DataTable. Il faut effectuer les actions suivantes :
1. créer un DataGridTableStyle pour la table en question ;
2. ajouter le style au DataGrid ;
3. renommer la propriété HeaderText du style de colonne (DataGridColumnStyle) correspondant.
Le titre dans la colonne sera bien celui assigné, et on n'a pas touché à la structure interne de la table.
|
| ||
auteur : crjo | ||
On suppose que le DataGrid est associé à une DataTable. Il faut effectuer les actions suivantes :
Astuce : en gardant une référence sur le style de colonne supprimée (hiddenColStyle), on peut par la suite décider de réafficher la colonne. Cette technique est utile si on veut choisir dynamiquement les colonnes à afficher.
|
| ||
auteur : neguib | ||
Ici, le souci à résoudre est que l'accesseur DataGrid.DataGridRows est déclaré internal. Cette propriété expose le tableau des objets DataGridRow, elle même classe internal de System.Windows.Forms. Pour atteindre sa propriété Height, il y a tout de même une solution qui passe par les fonctionnalités de System.Windows.Reflection.
Pour la démonstration, nous implémentons notre propre classe MonDataGrid dérivée de DataGrid :
|
| ||
auteur : neguib | ||
Dans un premier temps, il faut d'abord savoir Comment modifier la hauteur des lignes du DataGrid ?. Nous utiliserons cette classe MonDataGrid dérivée de DataGrid et notamment sa méthode publique setRowHeight.
|
| ||
auteur : neguib | ||
La classe DataGrid ne possède nativement que l'évènement CurrentCellChanged pour signaler le changement de cellule. Il nous faut donc simplement, lors de cet évènement, comparer la ligne à laquelle correspond la cellule avec un champ privé représentant la ligne précedemment sélectionnée. Ainsi nous pouvons déclencher un nouvel évènement que nous appelons CurrentRowChanged à partir de la surcharge de la méthode DataGrid.OnCurrentCellChanged.
Nous implémenterons une classe
MonDataGrid
dérivée de DataGrid capable de déclencher un évènement CurrentRowChanged pour signaler la ligne ayant actuellement le focus et, par là même, distinguer celle correspondant à l'ajout d'un enregistrement.
Utilisable par exemple ainsi :
|
| ||
auteur : neguib | ||
La Classe DataGrid.HitTestInfo vous permet de déterminer la partie d'un contrôle DataGrid sur laquelle l'utilisateur a cliqué. Pour ce faire, il nous faut :
Nous implémenterons une classe
MonDataGrid
dérivée de DataGrid capable d'exposer par un accesseur sa partie cliquée.
Utilisable, par exemple, de la façon suivante :
| ||
lien : System.Windows.Forms.DataGrid.HitTestType (MSDN) |
| ||
auteur : neguib | ||
La propriété
DataGrid.BindingContext
permet d'accéder à l'indexeur de l'objet BindingManagerBase sous-jascent. Et par là même, permet d'atteindre sa propriété BindingManagerBase.Count.
Pour la démonstration, nous implémentons notre propre classe
MonDataGrid
dérivée de DataGrid.
Utilisable par exemple ainsi sur une modification DataGrid.DataSource :
Cet exemple peut bien évidemment être amélioré, si l'on souhaite également répercuter de façon dynamique des ajouts ou suppressions de lignes.
|
| ||
auteur : neguib | ||
Utilisons un TreeView appelé ici "TreeView1" possédant nécessairement dans ce cas de figure une ImageList pour sa collection de TreeNode. La capture de l'évènement Click se fait ici par la méthode TreeView.MouseDown afin de récupérer les coordonnées du pointeur de la souris. La méthode ci-dessous GetNodeIconeRectangle permet de calculer le Rectangle de l'icone du TreeNode sélectionné. Il ne reste plus alors qu'à vérifier si le Point localisé du pointeur de la souris appartient à l'icone du TreeNode sélectionné.
|
| ||
auteur : cardi | ||
Il faut pour cela traiter l'évènement MouseMove du TreeView :
|
| ||
auteur : neguib | ||
L'objet ListViewSubItem a une propriété BackColor mais pour que l'assignation soit effective il ne faut pas oublier de modifier la propriété UseItemStyleForSubItems du ou des ListViewItem concerné(s) en lui attribuant la valeur false. Si vous souhaitez effectuer cette opération par programmation, voici un exemple : - Coloration en jaune de toute la première colonne d'un ListView1 :
| ||
lien : ![]() |
| ||
auteur : nico-pyright(c) | ||
L'objet ListView dispose d'une propriété ListViewItemSorter de type IComparer. Cela permet d'implémenter sa propre gestion du tri. Pour ce faire, il faut créer une classe dérivant de IComparer implémentant la méthode Compare.
Ensuite, il suffit d'intercepter le clic sur les colonnes (évènement ColumnClick) et d'instancier cette classe.
Remarque : j'effectue ici une comparaison de chaines, il faudra implémenter différemment si on compare des nombres par exemple.
|
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2010 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.