Bonjour !
Je travail avec le projet open source sourcegrid depuis pas mal de temps déjà, sur un programme en cours de développement. Dans les grandes lignes, même si c'est assez complexe à utiliser, c'est très puissant. Aujourd'hui, je suis en train de mettre en place un système permettant d'éditer ma grid, c'est à dire de réaliser des copier / couper / coller.
Rien de bien compliqué. Seulement j'aimerais pouvoir implémenter un contextmenustrip sur mon grid, là encore c'est assez facile, mais j'aimerais, lorsque je fais un clic droit, sélectionné la cellule présente sous ma souris (par défaut seul le clic gauche permet de sélectionné une cellule), afin d'avoir ses coordonnées si je dois manipuler ses informations.
J'ai donc créer un ContextMenuStrip contenant : Copier, Coller et Coller.
Ensuite j'ai créer une class "gridsFactEvent" qui récupère l'index sous la souris comme tel :
Seulement je ne sais pas comment communiquer entre ma forme et ma class. J'aimerais récupérer la variable pos lorsque je fais un clic-droit mais pour le moment je galère, pour deux raisons.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Public Class gridsFactEvent Inherits SourceGrid.Cells.Controllers.ControllerBase Public pos as Integer Public Overrides Sub OnMouseEnter(ByVal sender As SourceGrid.CellContext, ByVal e As System.EventArgs) MyBase.OnMouseEnter(sender, e) pos = sender.Position.Row End Sub End Class
1) La form sur laquelle se trouve ma grid et depuis laquelle je vais gérer le contextmenustrip dispose d'un constructeur.
2) Ma classe gridsFactEvent nécessit également un constructeur.
Donc lorsque j'essaie de récupérer ma variable publique pos :
Comme il reconstruit ma classe, la variable pos est toujours égale à zéro. Même chose lorsque j'essaie d'accéder à une variable publique dans ma form, comme je suis obligé de l'appeler par un constructeur, la variable se réinitialise.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Dim gridFact as new gridsFactEvent Dim pos as Integer = gridFact.pos
Vous comprenez ? Y-a-t'il un moyen de contourner ce problème de constructeur ?
Merci !
Partager