Accueil > Forum > > > > DragDrop sur Datagridview
DragDrop sur Datagridview
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ée 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
Mise à jour datagridview depuis différentes fenêtres [ par schismdj ]
Bonjour, je rencontre un problème pour mettre a jour mon datagrid view. Dans mon application j'ai une fenêtre principale (fenetre1) sur laquelle on t
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
|
Derniers Blogs
[HTML5] SLIDES ET DéMOS : AUTOUR DU W3C , NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] SLIDES ET DéMOS : AUTOUR DU W3C , NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Très bonne après-midi passée lors cette conférence avec le W3C, organisée par L' Inria sur les nouveaux standards, ce Mardi 14 Février, on sent vraiment que çà bosse au W3C, et l'avenir est très très prometteur pour le HTML5, notamment ...
Cliquez pour lire la suite de l'article par Gio GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc
Forum
RE : VITESSERE : VITESSE par ossama261988
Cliquez pour lire la suite par ossama261988
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|