SELECIONAR DATAGRIDVIEW COM ENTER E BOTAO

WATZECK 23/08/2013 23:52:41
#428049
Boa noite galera, beleza?
Estou iniciando com VB.NET (Visual Studio 2010) e estou com uma dúvida para selecionar a linha do datagridview com o enter e com o botão selecionar.

Eu consigo selecionar a linha correta com o enter, mas quando clico com o botão Selecionar ele traz a linha de cima ou de baixo. Já tentei de tudo no código mas não consegui.

Se alguém puder me ajudar ficarei muito grato.

Seguem abaixo os códigos que utilizei para facilitar onde estou errando:

Private Sub dgdCodGrupo_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles dgdCodGrupo.KeyPress
If e.KeyChar = Convert.ToChar(13) Then
e.Handled = True
[ô]btnSelecionar_Click_1(Me, e)
btnSelecionar.PerformClick()
End If
End Sub


Private Sub btnSelecionar_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSelecionar.Click

Dim tabcodpesq As Integer
Dim tabnomepesq As String

tabcodpesq = CInt(dgdCodGrupo.Rows(dgdCodGrupo.CurrentRow.Index - 1).Cells(0).Value)
tabnomepesq = dgdCodGrupo.CurrentRow.Cells(1).Value.ToString

[ô] Limpa o Formulário
btnLimpar_Click(Me, e)

[ô] Encerra o formulário
Me.Close()

End Sub

Obrigado.
NILSONTRES 24/08/2013 13:54:39
#428053
Resposta escolhida
Porque vc esta colocando um btn para selecionar, não pode ser pelo clique no proprio grid ?
WATZECK 25/08/2013 00:20:45
#428073
Boa noite Sr. Nilsontres.

Então, até pode, não havia pensado nessa hipótese, aliás nem sabia desse detalhe de selecionar a linha clicando nele.

Porque quando aperto o enter, ele me trás o código e o nome, em duas TextBox (uma para o código e outra para o nome).

Você saberia me informar o código para fazer dessa forma então?
Funcionaria com o Enter também ou tem que ser um ou outro?

Obrigado.
NILSONTRES 25/08/2013 00:33:20
#428074
Citação:

aliás nem sabia desse detalhe de selecionar a linha clicando nele.


Desconfiei, por isso perguntei.
no evento CellClick do datagrid

Private Sub GRID1_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles GRID1.CellClick
If e.RowIndex < 0 Then Exit Sub [ô]para o código para evitar erro

MsgBox(GRID1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value)
End Sub
WATZECK 26/08/2013 12:28:13
#428118
Bom dia, Nilsontres.

Eu testei o código que você informou, mas não seleciona, apenas mostra a mensagem.
Será que está faltando alguma coisa?
FELLIPEASSIS 26/08/2013 12:34:26
#428119
oq vc quer é quando clicar com o mouse na linha do datagridview passar o conteudo do datagriview para os textbox?
WATZECK 26/08/2013 12:40:50
#428120
Bom dia Fellipeassis.

Isso, eu havia colocado um botão para selecionar, e me sugeriram quando clicar no datagrid fazer a função do botão selecionar.
São duas colunas, uma para o código e outra para o nome e traz em 2 TextBox.
é uma tabela com todos os códigos e nomes dos usuários cadastrados no programa que irão fazer o protocolo, e também vou utilizar esse mesmo código, para selecionar todos os clientes cadastrados.
Se puder me ajudar, também agradeço.

Obrigado.
NILSONTRES 26/08/2013 13:00:20
#428124
Sim, é uma msgbox, só para vc testar, agora altera conforme vc precisa, joga em textbox ou outra coisa.
textbox1.text=GRID1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value

Tem algo alem disso que vc quer fazer ?

FELLIPEASSIS 26/08/2013 13:05:01
#428125
bom no evento CellDoubleClick ou CellClick do datagridview
txtNome.Text = datagirdview.Rows(e.RowIndex).Cells([Ô]nome da sua coluna ou nº sem aspas[Ô]).Value
ou no botão
txtNome.Text = datagirdview.CurrentRow.Cells([Ô]nome da sua coluna ou nº sem aspas[Ô]).Value
WATZECK 26/08/2013 20:16:39
#428145
Boa noite Sr. Nilsontres e Fellipeassis, deu certo.
Muito obrigado pela ajuda.
Eu coloquei dessa forma o código e resolveu meu problema.

Private Sub dgdCodGrupo_CellDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgdCodGrupo.CellDoubleClick

If e.RowIndex < 0 Then Exit Sub [ô]para o código para evitar erro
frmPesqProtocolos.txtNum_usuario.Text = (dgdCodGrupo.Rows(e.RowIndex).Cells(0).Value)
frmPesqProtocolos.txtNomeUsuario.Text = (dgdCodGrupo.Rows(e.RowIndex).Cells(1).Value)
Me.Close()
End Sub

Mais uma vez, muito obrigado pela ajuda, vou encerrar o tópico agora vlw
Tópico encerrado , respostas não são mais permitidas