MOVER LINHAS EM DATAGRIDVIEW

PERCIFILHO 02/08/2013 08:39:44
#426923
Bom dia a todos!!!!!

Estou pesquisando desde ontem, mas ainda não encontrei algo que me pudessa ajudar.
Preciso fazer com que o usuário mova as linhas em um DataGridView, alterando a posição dos registros apresentados. Não me perguntem por quê, pois usuário é usuário (vocês já devem estar acostumados a isso).
Eles pedem cada coisa...............

Mas, enfim, quem souber de algo que possa me ajudar, por favor. Continuarei pesquisando sem desistir jamais.

Até mais.
KERPLUNK 02/08/2013 09:44:42
#426925
O que poderia ser feito, é uma coluna enumeradora, o usuário faz a ordem que ele quer dos números nessa coluna e ordena. Mas tipo arrastar a linha pra cima e para baixo à vontade, eu nunca vi, pode até ser que tenha, mas realmente nunca vi essa funcionalidade.
PERCIFILHO 02/08/2013 10:57:27
#426935
Valeu, Kerplunk, mas eu decidi fazer diferente e o cliente parece que aceitou (vamos ver, ne?).

Criei os botões para cima e para baixo e os códigos são esses:

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
DgvNomes.Rows.Add([Ô]Diante da Cruz[Ô], [Ô]Rosa de Saron[Ô], [Ô]1994[Ô], [Ô]CD[Ô], [Ô]Estúdio[Ô])
DgvNomes.Rows.Add([Ô]Angústia Suprema[Ô], [Ô]Rosa de Saron[Ô], [Ô]1997[Ô], [Ô]CD[Ô], [Ô]Estúdio[Ô])
DgvNomes.Rows.Add([Ô]Olhando de Frente[Ô], [Ô]Rosa de Saron[Ô], [Ô]1999[Ô], [Ô]CD[Ô], [Ô]EP[Ô])
DgvNomes.Rows.Add([Ô]Depois do Inverno[Ô], [Ô]Rosa de Saron[Ô], [Ô]2002[Ô], [Ô]CD[Ô], [Ô]Estúdio[Ô])
DgvNomes.Rows.Add([Ô]Casa dos Espelhos[Ô], [Ô]Rosa de Saron[Ô], [Ô]2005[Ô], [Ô]CD[Ô], [Ô]Estúdio[Ô])
DgvNomes.Rows.Add([Ô]Rosa de Saron Acústico[Ô], [Ô]Rosa de Saron[Ô], [Ô]2007[Ô], [Ô]CD[Ô], [Ô]Estúdio[Ô])
DgvNomes.Rows.Add([Ô]Horizonte Distante[Ô], [Ô]Rosa de Saron[Ô], [Ô]2009[Ô], [Ô]CD[Ô], [Ô]Estúdio[Ô])
DgvNomes.Rows.Add([Ô]Siete Caminos[Ô], [Ô]Rosa de Saron[Ô], [Ô]2011[Ô], [Ô]CD[Ô], [Ô]EP[Ô])
DgvNomes.Rows.Add([Ô]O Agora e o Eterno[Ô], [Ô]Rosa de Saron[Ô], [Ô]2012[Ô], [Ô]CD[Ô], [Ô]Estúdio[Ô])
DgvNomes.Rows.Add([Ô]Latitude, Longitude[Ô], [Ô]Rosa de Saron[Ô], [Ô]2013[Ô], [Ô]CD[Ô], [Ô]Estúdio[Ô])
DgvNomes.Rows.Add([Ô]Acústico e Ao Vivo[Ô], [Ô]Rosa de Saron[Ô], [Ô]2008[Ô], [Ô]CD[Ô], [Ô]Ao Vivo[Ô])
DgvNomes.Rows.Add([Ô]Horizonte Vivo Distante[Ô], [Ô]Rosa de Saron[Ô], [Ô]2010[Ô], [Ô]CD[Ô], [Ô]Ao Vivo[Ô])
DgvNomes.Rows.Add([Ô]Latitude, Longitude[Ô], [Ô]Rosa de Saron[Ô], [Ô]2013[Ô], [Ô]CD[Ô], [Ô]Ao Vivo[Ô])
DgvNomes.Rows.Add([Ô]Acústico e Ao Vivo[Ô], [Ô]Rosa de Saron[Ô], [Ô]2008[Ô], [Ô]DVD[Ô], [Ô][Ô])
DgvNomes.Rows.Add([Ô]Horizonte Vivo Distante[Ô], [Ô]Rosa de Saron[Ô], [Ô]2010[Ô], [Ô]DVD[Ô], [Ô][Ô])
DgvNomes.Rows.Add([Ô]Rosa na Estrada[Ô], [Ô]Rosa de Saron[Ô], [Ô]2012[Ô], [Ô]DVD[Ô], [Ô][Ô])
DgvNomes.Rows.Add([Ô]Latitude, Longitude[Ô], [Ô]Rosa de Saron[Ô], [Ô]2013[Ô], [Ô]DVD[Ô], [Ô][Ô])
DgvNomes.Rows.Add([Ô]Rock, Fé e Poesia[Ô], [Ô]Rosa de Saron[Ô], [Ô]2008[Ô], [Ô]Livro[Ô], [Ô][Ô])
End Sub

[ô] botão para cima
Private Sub BtnParaCima_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnParaCima.Click
[ô] se estiver na primeira linha
If DgvNomes.CurrentRow.Index = 0 Then MsgBox([Ô]Inicio da lista[Ô]) : Exit Sub
[ô] rotina MoveLinha (vai mover uma linha acima da que está selecionada: CurrentRow.Index-1)
MoveLinha(DgvNomes.CurrentRow, DgvNomes.CurrentRow.Index - 1)
[ô] seleciona a linha que foi movida
DgvNomes.CurrentCell = DgvNomes.Rows(indice).Cells(1)
DgvNomes.Rows(indice).Selected = True
End Sub

[ô] botão para baixo
Private Sub BtnParaBaixo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnParaBaixo.Click
[ô] se for a última linha
If DgvNomes.CurrentRow.Index = DgvNomes.Rows.Count - 1 Then MsgBox([Ô]Final da lista[Ô]) : Exit Sub
[ô] rotina MoveLinha (vai mover uma linha abaixo da que está selecionada: CurrentRow.Index+1)
MoveLinha(DgvNomes.CurrentRow, DgvNomes.CurrentRow.Index + 1)
[ô] seleciona a linha que foi movida
DgvNomes.CurrentCell = DgvNomes.Rows(indice).Cells(1)
DgvNomes.Rows(indice).Selected = True
End Sub


Até mais.
Tópico encerrado , respostas não são mais permitidas