Por favor una ayuda, 
Necesito el código para poder arrastrar un valor de una celda de un datagrid y cambiarlo a otra celda, es facil hacerlo de un textbox al datagrid pero no entiendo como arrastrar un valor a la celda del mismo datagrid.. 
envio el codigo que estoy utilizando 
Private Sub DGV_Horario_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles DGV_Horario.DragDrop 
If e.Data.GetDataPresent(DataFormats.Text) Then 
Dim str As String = CType(e.Data.GetData(GetType(System.String)), System.String) 
Dim dgv As DataGridView = DirectCast(sender, DataGridView) 
Dim p As Point = dgv.PointToClient(New Point(e.X, e.Y)) 
Dim hti As DataGridView.HitTestInfo = dgv.HitTest(p.X, p.Y) 
If hti.Type = DataGridViewHitTestType.Cell Then 
Dim cell As DataGridViewCell = dgv(hti.ColumnIndex, hti.RowIndex) 
cell.Value = e.Data.GetData(DataFormats.Text) 
End If 
End If 
End Sub 
Private Sub DGV_Horario_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles DGV_Horario.DragEnter 
If (e.Data.GetDataPresent(DataFormats.Text)) Then 
' Display the copy cursor. 
e.Effect = DragDropEffects.Copy 
Else 
' Display the no-drop cursor. 
e.Effect = DragDropEffects.None 
End If 
End Sub 
Private Sub DGV_Horario_DragOver(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles DGV_Horario.DragOver 
Dim dgv As DataGridView = CType(sender, DataGridView) 
Dim p As Point = dgv.PointToClient(New Point(e.X, e.Y)) 
Dim hti As DataGridView.HitTestInfo = dgv.HitTest(p.X, p.Y) 
If hti.Type = DataGridViewHitTestType.Cell Then 
e.Effect = DragDropEffects.Copy 
Else 
e.Effect = DragDropEffects.None 
End If 
End Sub