|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre Expert
![]() Mangeur de gauffre Inscription : octobre 2007 Messages : 4 137 ![]() |
Bonjour
Quelqu'un sait-il comment on peut connaitre la location par rapport a la form d'une cellule de DataGridView dont on connait le Row et Column index ? Merci
__________________
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain) |
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() Inscription : janvier 2006 Messages : 5 390 ![]() |
Pour savoir si la cellule C est dans l'écran : Propriété "Displayed" de DataGridViewCell.
Si true, on a la première cellule visible en haut à gauche : F = MyDataGridView.FirstDisplayedCell Ensuite, une simple soustraction entre C.ContentBounds et F.ContentBounds donnera la position relative de C par rapport à la Location du DGV. Finalement, ajouter les Location des Controls parents, grand-parents, arrière ... du DGV (jusqu'à l'ancêtre de type Form - non compris).
__________________
" Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson |
|
|
00
|
|
|
#3 | ||
|
Membre Expert
![]() Mangeur de gauffre Inscription : octobre 2007 Messages : 4 137 ![]() |
Merci Grafito
Ta methode est bonne mais pour la cause j'ai fini par trouver la bonne solution Mon probleme etait d'ouvrir un dialogue positionné sous une cellule de DataGridview sur lequel un utilisateur a cliqué (cette cellulle est donc forcément visible) Voici le code Les deux astuces a noter (et ne pas oublier) C'est 1- Control.PointToScreen 2- FormStartPosition (celui-ci tue car il n'est pas évident a capter Code :
__________________
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain) |
||
|
|
00
|
|
|
#4 |
|
Membre du Club
![]() Philippe Le Trividic Inscription : avril 2008 Messages : 51 ![]() |
bonjour tous le monde,
deux ans plus tard ce code est toujours bon a prendre par contre sous VS2010 il a finalement été beaucoup simple Code :
label.Location = dgvPlanning.GetCellDisplayRectangle(col, ligne, True).Location voila si cela peut aider d'autres qui se posent la même question bonne continuation. |
|
|
10
|
Copyright © 2000-2013 - www.developpez.com