Foros del Web » Programación para mayores de 30 ;) » .NET »

mover o arrastrar una fila en un datagridview

Estas en el tema de mover o arrastrar una fila en un datagridview en el foro de .NET en Foros del Web. Hola a todos, deseo mover (arrastrar) una fila con el fin de poder ordenar manualmente las filas del datagridview . ¿Se puede hacer esto...? ya ...
  #1 (permalink)  
Antiguo 18/10/2009, 09:33
Avatar de ALTERUS  
Fecha de Ingreso: abril-2009
Mensajes: 20
Antigüedad: 15 años
Puntos: 0
Pregunta mover o arrastrar una fila en un datagridview

Hola a todos, deseo mover (arrastrar) una fila con el fin de poder ordenar manualmente las filas del datagridview.
¿Se puede hacer esto...? ya que solo vi que las columnas se pueden reordenadar.
¿Si se puede, como lo hago?
Gracias por sus repuestas.
  #2 (permalink)  
Antiguo 19/10/2009, 03:26
 
Fecha de Ingreso: junio-2008
Ubicación: Valencia
Mensajes: 152
Antigüedad: 15 años, 10 meses
Puntos: 3
Respuesta: mover o arrastrar una fila en un datagridview

1º Propiedad AllowDrop del datagridView = true

2º Evento DrapDorg del DatagridView
Código vb.net:
Ver original
  1. ' The mouse locations are relative to the screen, so they must be
  2.         ' converted to client coordinates.
  3.         Dim clientPoint As Point = grid2.PointToClient(New Point(e.X, e.Y))
  4.         ' Get the row index of the item the mouse is below.
  5.         filaLugarnuevo = grid2.HitTest(clientPoint.X, clientPoint.Y).RowIndex
  6.  
  7.         'Comprobamos que los indices de las filas no son el mismo y que no es el anterior a la fila seleccionada
  8.             If filaLugarnuevo <> filaSeleccionada Then
  9.                 If (filaLugarnuevo + 1) <> filaSeleccionada Then
  10.                     'Comprobamos que el efecto sea el de mover una fila
  11.                     If (e.Effect = DragDropEffects.Move) Then              
  12.                        'Aqui pondremos si queremos guardar los datos en una BD

3ºEvento MouseMove del DatagridView
Código vb.net:
Ver original
  1. If e.Button = Windows.Forms.MouseButtons.Left Then
  2.             If filaSeleccionada <> -1 Then
  3.                 If dragBoxFromMouseDown <> Rectangle.Empty And Not dragBoxFromMouseDown.Contains(e.X, e.Y) Then
  4.  
  5.                     ' Iniciamos el porcedimiento de arratrar.                    
  6.                     Dim dropEffect As DragDropEffects
  7.                     dropEffect = grid2.DoDragDrop(grid2.Rows(filaSeleccionada), DragDropEffects.Move)
  8.                 End If
  9.             End If
  10.         End If

Creo que no me olvido de nada.

Espero te sirva.
  #3 (permalink)  
Antiguo 19/10/2009, 11:03
Avatar de ALTERUS  
Fecha de Ingreso: abril-2009
Mensajes: 20
Antigüedad: 15 años
Puntos: 0
Respuesta: mover o arrastrar una fila en un datagridview

Gracias por la respuesta, me olvide de mencionar que estoy programando en C#, pero igual voy a intentar realizar loque me dices, Gracias...!
  #4 (permalink)  
Antiguo 30/11/2010, 16:22
 
Fecha de Ingreso: noviembre-2010
Mensajes: 3
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: mover o arrastrar una fila en un datagridview

Hola podrías colocar el ejemplo completo.

Gracias!!
  #5 (permalink)  
Antiguo 30/11/2010, 16:24
 
Fecha de Ingreso: noviembre-2010
Mensajes: 3
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: mover o arrastrar una fila en un datagridview

Llevo algún tiempo tratando de mover una fila de un datagrid (tal como lo citas en tu ejemplo) pero no he encontrado nada similar. Excepto tu ejemplo, el cual traté de traducir a C# pero tengo duda en dragBoxFromMouseDown y dragBoxFromMouseDown. Si pudieras orientarme un poco te lo agredecería
  #6 (permalink)  
Antiguo 25/07/2011, 19:49
 
Fecha de Ingreso: agosto-2009
Mensajes: 135
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: mover o arrastrar una fila en un datagridview

tenia la misma duda, y encontre tu respuesta ,el tema es que me da error en dragBoxFromMouseDown ,de donde salio?
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:55.