DATAGRIDVIEW ORDENACAO
Boa tarde, amigos.
No meeu DatagridView, eu coloquei as colunas todas com a propriedade SortMode=NotSortable.
Porém, quando eu dou duplo clique na coluna dela, me aparece um erro.
Creio que deve ser porque eu tenho uma rotina no evento CellDoubleClick do DataGridView para me mostrar os dados em outro form.
Como faço para corrigir esse erro?
Até mais.
No meeu DatagridView, eu coloquei as colunas todas com a propriedade SortMode=NotSortable.
Porém, quando eu dou duplo clique na coluna dela, me aparece um erro.
Creio que deve ser porque eu tenho uma rotina no evento CellDoubleClick do DataGridView para me mostrar os dados em outro form.
Como faço para corrigir esse erro?
Até mais.
Boa tarde,
Amigo primeiramente, qual erro? Segundo, qual código está utilizando?
Até mais.
Amigo primeiramente, qual erro? Segundo, qual código está utilizando?
Até mais.
Então vamos lá:
No evento CellDoubleClick do DataGridView, para clicar no registro e mostrar os dados no formulário de cadastro:
Private Sub DgvCidades_CellDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DgvCidades.CellDoubleClick
[ô] se não houver registros no DataGridView, não faz nada
If DgvCidades.Rows.Count = 0 Then Exit Sub
[ô] passa o valor da célula seleiconada para o controle
Cidades.TxtCodigo.Text = DgvCidades.Rows(e.RowIndex).Cells(0).Value
indice = e.RowIndex
[ô] estabelece a conexão
Dim con As New OleDbConnection(conexao)
Dim cmdcidades As OleDbCommand
[ô] abre a conexão
con.Open()
[ô] consulta sql para ver se existe o registro selecionado
cmdcidades = New OleDbCommand([Ô]SELECT * FROM Cidades WHERE codigo = [Ô] & Cidades.TxtCodigo.Text, con)
Dim drcidades As OleDbDataReader = cmdcidades.ExecuteReader
[ô] se houver registro selecionado, transfere os valores para o formulário de cadastro
If drcidades.Read = True Then
If modoconsulta = [Ô]Cidades[Ô] Then
Cidades.TxtNome.Text = drcidades.Item([Ô]nome[Ô])
Cidades.CmbUf.Text = drcidades.Item([Ô]uf[Ô])
ElseIf modoconsulta = [Ô]Empresas[Ô] Then
Empresas.TxtCodigoCidade.Text = drcidades([Ô]codigo[Ô])
Empresas.TxtNomeCidade.Text = drcidades.Item([Ô]nome[Ô])
con.Close()
[ô] se não houver o registro selecionado, emite mensagem
Else
MsgBox([Ô]Cidade não cadastrada[Ô], MsgBoxStyle.Critical, [Ô]Erro de consulta[Ô])
con.Close()
Exit Sub
End If
End If
[ô] habilita/desabilita botões do menu
Cidades.MnuNovo.Enabled = False
Cidades.MnuSalvar.Enabled = False
Cidades.MnuCancelar.Enabled = True
Cidades.MnuEditar.Enabled = True
Cidades.MnuExcluir.Enabled = True
Cidades.MnuConsultar.Enabled = True
Cidades.MnuFechar.Enabled = False
[ô] fecha o formulário de consulta
Me.Close()
End Sub
Quando clico no cabeçalho do DataGridView, aparece o erro.
No evento CellDoubleClick do DataGridView, para clicar no registro e mostrar os dados no formulário de cadastro:
Private Sub DgvCidades_CellDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DgvCidades.CellDoubleClick
[ô] se não houver registros no DataGridView, não faz nada
If DgvCidades.Rows.Count = 0 Then Exit Sub
[ô] passa o valor da célula seleiconada para o controle
Cidades.TxtCodigo.Text = DgvCidades.Rows(e.RowIndex).Cells(0).Value
indice = e.RowIndex
[ô] estabelece a conexão
Dim con As New OleDbConnection(conexao)
Dim cmdcidades As OleDbCommand
[ô] abre a conexão
con.Open()
[ô] consulta sql para ver se existe o registro selecionado
cmdcidades = New OleDbCommand([Ô]SELECT * FROM Cidades WHERE codigo = [Ô] & Cidades.TxtCodigo.Text, con)
Dim drcidades As OleDbDataReader = cmdcidades.ExecuteReader
[ô] se houver registro selecionado, transfere os valores para o formulário de cadastro
If drcidades.Read = True Then
If modoconsulta = [Ô]Cidades[Ô] Then
Cidades.TxtNome.Text = drcidades.Item([Ô]nome[Ô])
Cidades.CmbUf.Text = drcidades.Item([Ô]uf[Ô])
ElseIf modoconsulta = [Ô]Empresas[Ô] Then
Empresas.TxtCodigoCidade.Text = drcidades([Ô]codigo[Ô])
Empresas.TxtNomeCidade.Text = drcidades.Item([Ô]nome[Ô])
con.Close()
[ô] se não houver o registro selecionado, emite mensagem
Else
MsgBox([Ô]Cidade não cadastrada[Ô], MsgBoxStyle.Critical, [Ô]Erro de consulta[Ô])
con.Close()
Exit Sub
End If
End If
[ô] habilita/desabilita botões do menu
Cidades.MnuNovo.Enabled = False
Cidades.MnuSalvar.Enabled = False
Cidades.MnuCancelar.Enabled = True
Cidades.MnuEditar.Enabled = True
Cidades.MnuExcluir.Enabled = True
Cidades.MnuConsultar.Enabled = True
Cidades.MnuFechar.Enabled = False
[ô] fecha o formulário de consulta
Me.Close()
End Sub
Quando clico no cabeçalho do DataGridView, aparece o erro.
Amigo, debuga o seu código ai e veja a linha que está dando erro, verifica se é essa:
Até mais.
Cidades.TxtCodigo.Text = DgvCidades.Rows(e.RowIndex).Cells(0).Value
indice = e.RowIndex
Até mais.
Cara, deixa eu ver se entendi aqui direito, você quer clicar duas vezes em uma linha e pegar o registro dela e passar para o segundo form, certo?
Se for é bem simples, troca a linha abaixo:
Por
Isso acho que resolve o seu problema.
Até mais.
Se for é bem simples, troca a linha abaixo:
Cidades.TxtCodigo.Text = DgvCidades.Rows(e.RowIndex).Cells(0).Value
indice = e.RowIndex
Por
Cidades.TxtCodigo.Text = Cidades.TxtCodigo.Text = dgvCidades.CurrentRow.Cells(0).Value
Isso acho que resolve o seu problema.
Até mais.
é, amigo, é essa linha mesmo. Algo errado com ela?
Citação::
Cara, deixa eu ver se entendi aqui direito, você quer clicar duas vezes em uma linha e pegar o registro dela e passar para o segundo form, certo?
Se for é bem simples, troca a linha abaixo:
Cidades.TxtCodigo.Text = DgvCidades.Rows(e.RowIndex).Cells(0).Value
indice = e.RowIndex
PorCidades.TxtCodigo.Text = Cidades.TxtCodigo.Text = dgvCidades.CurrentRow.Cells(0).Value
Isso acho que resolve o seu problema.
Até mais.
Valeu, amigo, agora o que acontece é o seguinte:
quando eu clico no cabeçalho do DataGridView, o erro não ocorre, porém ele joga os dados para o outro form, com o registro que está selecionado.
Eu teria que clicar no cabeçalho e não acontecer nada.
Tem como?
quando eu clico no cabeçalho do DataGridView, o erro não ocorre, porém ele joga os dados para o outro form, com o registro que está selecionado.
Eu teria que clicar no cabeçalho e não acontecer nada.
Tem como?
Citação:quando eu clico no cabeçalho do DataGridView, o erro não ocorre, porém ele joga os dados para o outro form, com o registro que está selecionado.
é amigo eu até tinha reparado nisso.
Citação:Eu teria que clicar no cabeçalho e não acontecer nada.
Tem como?
Essa eu vo ficar te devendo, vou dar uma olhada aqui, qualquer coisa eu posto aqui...
Até mais.
Valeu, amigo. Muito obrigado.
Até mais.
Até mais.
Tópico encerrado , respostas não são mais permitidas