EDITANDO NO DATAGRIDVIEW

PERCIFILHO 07/10/2015 10:51:54
#452262
Amigos, bom dia.
Eu tenho um Datagridview de uma coluna apenas onde deve-se digitar um nome de conta.
Preciso fazer uma validação para o caso de o usuário digitar um valor incorreto ou em branco.
Até já consegui fazer a validação, porém, queria fazer com que na hora de validar, emite uma mensagem e fica selecionada a mesma coluna, para o usuário digitar novamente.
Como consigo fazer isso, em que evento?
ACCIOLLY 07/10/2015 11:08:25
#452263
Acho que vc quiz dizer a mesma célula
Em todo caso guarde o index da sua célula em uma variável antes de chamar esse evento

Dim integer linha as Integer = DataGridView.CurrentRow.Cells(0).RowIndex

depois do evento é só focar na célula daquela linha
DataGridView.CurrentCell = DataGridView.Rows(linha).Cells(0)

note que row é a linha e cells é a coluna identificados pelo número entre parenteses como é um indice sempre começa com 0 blz!

PERCIFILHO 07/10/2015 12:30:01
#452267
Boa tarde, Acciolly, tudo beleza?

é o seguinte: eu fiz assim ( no evento CellEndEdit ):
    Private Sub DgvAnos_CellEndEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles Dgv.CellEndEdit
Dim pos As Integer = Dgv.CurrentRow.Cells(1).RowIndex
If Dgv.CurrentRow.Cells(1).Value = [Ô][Ô] Then
MessageBox.Show([Ô]Campo não pode ser vazio[Ô], [Ô]Erro[Ô], MessageBoxButtons.OK, MessageBoxIcon.Stop)
Dgv.CurrentCell = Dgv.Rows(pos).Cells(1)
Dgv.CurrentRow.Selected = True
EndIf
End Sub


porém o que acontece é que quando o campo está vazio e o usuário tecla Enter, o foco vai para a próxima linha da grid, e deveria ficar na mesma linha e coluna, para o usuário digitar corretamente. Talvez eu esteja fazendo no evento errado, não é?

Exit Sub
End If
PERCIFILHO 07/10/2015 12:58:06
#452268
Parece que consegui o resultado que eu queria, fiz algumas modificações e ficou assim:

Private Sub Dgv_CellValidating(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellValidatingEventArgs) Handles Dgv.CellValidating
If String.IsNullOrEmpty(e.FormattedValue.ToString()) Then
MessageBox.Show([Ô]Campo não pode ser vazio[Ô], [Ô]Ano[Ô], MessageBoxButtons.OK, MessageBoxIcon.Stop)
Dgv.CurrentCell = Dgv.Rows(e.RowIndex).Cells(1)
Dgv.Rows(e.RowIndex).Selected = True
e.Cancel = True
End If
End Sub


Valeu, turma!!!!!!
ACCIOLLY 07/10/2015 16:35:37
#452277
Ok Podes encerrar o tópico

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