|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : DragDrop sur Datagridview [ Divers / General ] (Zayann)
Informations & options pour cette discussion
samedi 30 août 2008 à 14:14:14 |
DragDrop sur Datagridview

Zayann
|
Bonjour... Je cherche à faire un glisser/déposer entre deux datagridview. Avec l'aide j'ai réussi à saisir les données mais je n'arrive pas à les mettre dans mon deuxième datagridview... Private Sub datagridview1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles DataGridView1.MouseDown DataGridView1.DoDragDrop(DataGridView1.Rows, DragDropEffects.Copy Or DragDropEffects.Move) End Sub HELP please...
|
|
|
dimanche 31 août 2008 à 00:16:06 |
Re : DragDrop sur Datagridview

kinneri
|
bonsoir voila une façon de faire un drag drop vers un datagrid A+ Public IndexdInsertion AsIntegerPrivateSub DataGridView1_MouseDown(ByVal sender AsObject, ByVal e As System.Windows.Forms.MouseEventArgs) Handles DataGridView1.MouseDownIf DataGridView1.CurrentCell.Value <> ""ThenDataGridView1.DoDragDrop(DataGridView1.CurrentCell.Value, DragDropEffects.Copy Or DragDropEffects.Move)EndIfEndSubPrivateSub DataGridView2_DragOver(ByVal sender AsObject, ByVal e As System.Windows.Forms.DragEventArgs) Handles DataGridView2.DragOverDim aa = GetType(System.String)IfNot (e.Data.GetDataPresent(GetType(System.String))) Thene.Effect = DragDropEffects.None Elsee.Effect = DragDropEffects.Copy EndIfEndSubPrivateSub DataGridView2_DragDrop(ByVal sender AsObject, ByVal e As System.Windows.Forms.DragEventArgs) Handles DataGridView2.DragDropDim item AsObject = CType(e.Data.GetData(GetType(System.String)), System.Object)DataGridView2.Rows.Insert(IndexdInsertion, item) EndSub
|
|
|
dimanche 31 août 2008 à 09:17:43 |
Re : DragDrop sur Datagridview

Zayann
|
Merci beaucoup...
Deux petits problèmes...
La copie ne s'effectue que sur une des colonnes... Mes datagridview contiennent deux colonnes, une nom et une nombre. Seul la colonne du nom se copie...
Autre petit problème il y a un décalage entre la sélection et le copie, je m'explique... je dragdrop l'item 1, pas de problème. je dragdrop l'item 2, nouvelle copie de l'item 1 je dragdrop l'item 3, copie de l'item 2 je dragdrop l'item 4, copie de l'item 3
Dans le désordre, l'ordre que je choisi est bien respecté mais le code copie systématiquement l'item 1 en premier...
Merci déja pour le code, c'est plus que ce que j'avais pu faire... je vais le regarder en détaille
A +
|
|
|
lundi 1 septembre 2008 à 12:24:10 |
Re : DragDrop sur Datagridview

kinneri
|
Bonjour, voici une methode pour dragdrop multi colonne Public Class Form1Dim data As DataGridViewRowPrivateSub DataGridView1_MouseDown(ByVal sender AsObject, ByVal e As System.Windows.Forms.MouseEventArgs) Handles DataGridView1.MouseDownIf DataGridView1.CurrentCell.Value <> ""ThenData = DataGridView1.Rows(DataGridView1.CurrentRow.Index).Clone() ' as DataGridViewRow;Dim aFor i = 0 To Data.Cells.Count - 1a = DataGridView1.CurrentRow.Cells(i).Value data.Cells(i).Value = a DataGridView2.DoDragDrop(data, DragDropEffects.Copy) NextEndIfEndSubPrivateSub DataGridView2_DragOver(ByVal sender AsObject, ByVal e As System.Windows.Forms.DragEventArgs) Handles DataGridView2.DragOvere.Effect = DragDropEffects.Copy EndSubPrivateSub DataGridView2_DragDrop(ByVal sender AsObject, ByVal e As System.Windows.Forms.DragEventArgs) Handles DataGridView2.DragDropDim clientPoint = DataGridView2.PointToClient(New Point(e.X, e.Y))Dim hit = DataGridView2.HitTest(e.X, e.Y)If hit.RowIndex <> -1 ThenDataGridView2.Rows.Insert(hit.RowIndex, data) ElseDataGridView2.Rows.Add(data) EndIfEndSubEnd Class
A+
|
|
|
lundi 1 septembre 2008 à 15:11:17 |
Re : DragDrop sur Datagridview

Zayann
|
Merci beaucoup, ça marche nickel, sauf le problème avec l'ordre de sélection... En debuggant j'ai compris pourquoi... la cellule par défaut est la cellule 0... Or la routine de copie : PrivateSub DataGridView1_MouseDown(ByVal sender AsObject, ByVal e As System.Windows.Forms.MouseEventArgs) Handles DataGridView1.MouseDownIf DataGridView1.CurrentCell.Value <> ""ThenData = DataGridView1.Rows(DataGridView1.CurrentRow.Index).Clone() ' as DataGridViewRow;Dim aFor i = 0 To Data.Cells.Count - 1a = DataGridView1.CurrentRow.Cells(i).Value data.Cells(i).Value = a DataGridView2.DoDragDrop(data, DragDropEffects.Copy) NextEndIfEndSubmet la cellule sélectionnée comme active que lors de la sortie de la routine... Lors de la sélection, la routine active est toujours la précédente, tant que le bouton n'est pas relâché.
|
|
|
lundi 1 septembre 2008 à 22:13:08 |
Re : DragDrop sur Datagridview

kinneri
|
Bonsoir,
as tu tester la dernier version si dessus.?
car je n'ai pas ce probleme.
A+
|
|
|
lundi 1 septembre 2008 à 22:51:59 |
Re : DragDrop sur Datagridview

Zayann
|
Bonsoir...
Oui elle a été testé et fonctionne très bien, encore merci....
C'est vraiment un problème de focus sur la cellule... la cellule choisie prend le focus mais à la fin de la procédure, le dragdrop se fait donc sur la cellule précédente - qui a encore le focus - ou sur la cellule 0 par défaut.
J'ai essayé de forcé le focus lorsque la souris passe sur une cellule mais cela n,e fonctionne pas... Je vais refaire des test demain...
A +
|
|
|
mardi 2 septembre 2008 à 06:14:28 |
Re : DragDrop sur Datagridview

kinneri
|
bonjour,
ok, je vais voir pour qu'il se place a l'endroit ou la souris depose.
A+
|
|
|
mardi 2 septembre 2008 à 08:28:50 |
Re : DragDrop sur Datagridview

Zayann
|
Bonjour, J'ai refait des test ce matin...
Effectivement, le focus devient actif sur la cellule voulue au moment du relâchement du bouton de la souris... La seul solution que j'entrevoie est donc de donner le focus à la cellule lorsqu'elle est survolée par la souris (sans clic donc), peut être par un évennement : DataGridView1.CellMouseEnter...
Je vais encore essayé cette solution (hier soir c'était pas vraiment une réussite)...
A +
|
|
|
mardi 2 septembre 2008 à 12:16:43 |
Re : DragDrop sur Datagridview

kinneri
|
Bonjour,
colle ce code PrivateSub DataGridView2_DragDrop(ByVal sender AsObject, ByVal e As System.Windows.Forms.DragEventArgs) Handles DataGridView2.DragDrop 'ByVal e As System.Windows.Forms.DragEventArgs Dim clientPoint As Point = DataGridView2.PointToClient( New Point(e.X, e.Y)) Dim hit As DataGridView.HitTestInfo = DataGridView2.HitTest(clientPoint.X, clientPoint.Y) If hit.RowIndex <> -1 Then DataGridView2.Rows.Insert(hit.RowIndex, data) Else DataGridView2.Rows.Add(data) End If End Sub
cela devrait resoudre ton probleme.
A+
|
|
|
Cette discussion est classé dans : datagridview, mousedown, datagridview1, dragdrop, byval
Répondre à ce message
Sujets en rapport avec ce message
2 datagridview liées vb2005express [ par vercomax ]
bonsoir,j'ai 2 datagridview et souhaite les relier entre elle à l'aide de vb2005expressj'ai beau essayer, çà marche pas, je dois oublier qq chose.dans
vb 2005 - dataGridView - checkboxcolumn [ par phana63 ]
BoujourJ'utilse un datagridview avec une connexion access. Je met des checkboxcolumn.Voila, a chaque fois que je coche une case (true ou false), je v
DragDrop Backcolor [ par guillaume6431 ]
Bonjour tous le monde,Ma question a peut etre deja été posée mais je n'ais pas encore reussi a trouver une solution efficace.Voila, je souhaite faire
Impression datagridview [ par hafsa59 ]
Salut, J'ai un petit problème concernant l'impression d'un datagridview en vb.net, j'ai cherché dans le site j'ai trouvé des sources, mais elle ne m
datagridview [ par mohamed222222 ]
Bonjour,Dans mon interface je charge un datagridview que je nomme datgridview1. Ensuite je souhaiterai affecté les valeurs de ce datagridview1 à un au
contrôler la saisie dans un DataGridView [ par erakERA ]
Bjr !je ve empêcher la saisie des valeurs non numériques dans une DataGridViewj'ai utilisé le code suivant mais tant que la valeur n'est pas commitée
Masquer beaucoup de lignes dans un datagridview [ par chaudakh ]
Bonjour,J'essaie de filtrer des lignes d'un datagridview (qu'on appellera Daragridview1)...A noter que ce datagridview n'est pas relié à une source de
info bulle datagridview [ par sauce31 ]
Bonjour,J'ai un datagridview qui stocke des nombres, suivie du signe $ si les nombres sont en dollars ( ex : 1234$)J'aimerais que lorsque l'utilisateu
datagridview imprimer [ par mohamed222222 ]
Bonjour,je souhaiterai imprimer le contenu de mon datagridview. pour cela j'utilise le code suivant :PrivateSub</font
Datagridview [ par Dan2468 ]
Bonjour, j'essaie d'afficher une valeur contenue dans mon datagrid view dans un textbox avec le code suivant: [CODE]txtCedPolNb.Text = frmRevStmt.Da
Livres en rapport
|
Comparez les prix Nouvelle version
|