EDITANDO NO DATAGRIDVIEW
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?
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?
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!
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!
Boa tarde, Acciolly, tudo beleza?
é o seguinte: eu fiz assim ( no evento CellEndEdit ):
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
é 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
Parece que consegui o resultado que eu queria, fiz algumas modificações e ficou assim:
Valeu, turma!!!!!!
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!!!!!!
Ok Podes encerrar o tópico
Té mais
Té mais
Tópico encerrado , respostas não são mais permitidas