PROBLEMAS COM COMBOBOX
Olá Pessoal, estou com uma dificuldade e gostaria da ajuda de vocês.
Bom, meu problema é o seguinte:
carrego um ComboBox com os dados do banco de dados no evento Load do Formulário desse jeito.
[txt-color=#0000f0]Dim cmdSelecao As SqlCommand
cmdSelecao = New SqlCommand([Ô]select * from modelo [Ô], cnnSql)
Dim da1 As SqlDataAdapter = New SqlDataAdapter(cmdSelecao)
Dim dt1 As DataTable = New DataTable
da1.Fill(dt1)
cmbModelo.DataSource = dt1
cmbModelo.ValueMember = [Ô]codigo[Ô]
cmbModelo.DisplayMember = [Ô]nome[Ô] [/txt-color]
tudo ocorre certo, grava com o codigo do modelo no banco, porem quando faço a consulta e retorno para alterar algo, o texto não passa para o ComboBox, fica em branco o codigo a seguir:
[txt-color=#0000f0]Frm_Cad_Equipamento.cmbModelo.Text = dgvPesquisa.Rows(e.RowIndex).Cells([Ô]nome[Ô]).Value[/txt-color]
a pesquisa é feita em outro formulario, e ao dar um duplo click na linha no DataGridView, passa os dados nos respectivos campos do formulario de cadastro, exceto no ComboBox.
se precisarem de mais informações por ter me complicado.
desde já agradeço.
Bom, meu problema é o seguinte:
carrego um ComboBox com os dados do banco de dados no evento Load do Formulário desse jeito.
[txt-color=#0000f0]Dim cmdSelecao As SqlCommand
cmdSelecao = New SqlCommand([Ô]select * from modelo [Ô], cnnSql)
Dim da1 As SqlDataAdapter = New SqlDataAdapter(cmdSelecao)
Dim dt1 As DataTable = New DataTable
da1.Fill(dt1)
cmbModelo.DataSource = dt1
cmbModelo.ValueMember = [Ô]codigo[Ô]
cmbModelo.DisplayMember = [Ô]nome[Ô] [/txt-color]
tudo ocorre certo, grava com o codigo do modelo no banco, porem quando faço a consulta e retorno para alterar algo, o texto não passa para o ComboBox, fica em branco o codigo a seguir:
[txt-color=#0000f0]Frm_Cad_Equipamento.cmbModelo.Text = dgvPesquisa.Rows(e.RowIndex).Cells([Ô]nome[Ô]).Value[/txt-color]
a pesquisa é feita em outro formulario, e ao dar um duplo click na linha no DataGridView, passa os dados nos respectivos campos do formulario de cadastro, exceto no ComboBox.
se precisarem de mais informações por ter me complicado.
desde já agradeço.
Onde você coloca isto?
[txt-color=#e80000]Frm_Cad_Equipamento.cmbModelo.Text = dgvPesquisa.Rows(e.RowIndex).Cells([Ô]nome[Ô]).Value[/txt-color]
[txt-color=#e80000]Frm_Cad_Equipamento.cmbModelo.Text = dgvPesquisa.Rows(e.RowIndex).Cells([Ô]nome[Ô]).Value[/txt-color]
Omar, nao sei se entendi, mas acho q num segundo form, onde tem o grid, entendi q seja isso, e ele queria q dando o duplo click no grid, dispare esse codigo, q faria no combo aparecer o nome clicado o grid, esperar mais detalhes se é isso mesmo
pressupondo q a tela não esteja visÃvel......
se já estiver visÃvel
fiz usando alguns dados q eu tenho aki
Private Sub DataGridView1_CellDoubleClick(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellDoubleClick
Dim tela As New Form2
tela.ComboBox1.Text = DataGridView1.Rows(e.RowIndex).Cells([Ô]saldoinicial[Ô]).Value
tela.Show()
se já estiver visÃvel
Private Sub DataGridView1_CellDoubleClick(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellDoubleClick
Form2.ComboBox1.Text = DataGridView1.Rows(e.RowIndex).Cells([Ô]saldoinicial[Ô]).Value
Form2.Focus()
fiz usando alguns dados q eu tenho aki
OMAR2011 esse codigo eu utilizo ele em um outro formulario , dai quando querer alterar ou excluir dou um duplo clique ou apertar um botão
o restante ficaria assim:
Frm_Cad_Equipamento.cmbModelo.Text = dgvPesquisa.Rows(e.RowIndex).Cells([Ô]nome[Ô]).Value
Frm_Cad_Equipamento.show()
os outros campos passam tudo certo, menos os dois combobox que estão carregados com os dados do banco de dados
NICKOSOFT sim, eu uso o primeiro codigo que você passou, porem só ocorre o problema nos dois combobox,
exemplo:
no combobox está carregado com os seguintes dados
abacaxi
mamão
morango
quando vou fazer a pesquisa em outro formulario (consultar) e quero alterar algo, dou um duplo clique na linha que eu quero, porem a celula(campo) que é para passar oque foi gravado, fica sempre oque está carregado e não o nome que foi gravado.
algumas imagens para ajudar
o erro acorre exatamente onde erra para mudar para HP LaserJet 2015 e 2º Andar, não mudou ficou o mesmo que carrega quando abre o formulario cadastro
o restante ficaria assim:
Frm_Cad_Equipamento.cmbModelo.Text = dgvPesquisa.Rows(e.RowIndex).Cells([Ô]nome[Ô]).Value
Frm_Cad_Equipamento.show()
os outros campos passam tudo certo, menos os dois combobox que estão carregados com os dados do banco de dados
NICKOSOFT sim, eu uso o primeiro codigo que você passou, porem só ocorre o problema nos dois combobox,
exemplo:
no combobox está carregado com os seguintes dados
abacaxi
mamão
morango
quando vou fazer a pesquisa em outro formulario (consultar) e quero alterar algo, dou um duplo clique na linha que eu quero, porem a celula(campo) que é para passar oque foi gravado, fica sempre oque está carregado e não o nome que foi gravado.
algumas imagens para ajudar
o erro acorre exatamente onde erra para mudar para HP LaserJet 2015 e 2º Andar, não mudou ficou o mesmo que carrega quando abre o formulario cadastro
Cara, criei uma tabela igual a sua consulta mostrada na imagem com datagridview preenchida.
Sem erro nenhum como citado.
Meu teste.
Private Sub DataGridView1_CellDoubleClick(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellDoubleClick
FrmTesteencher.cmbModelo.Text = DataGridView1.Rows(e.RowIndex).Cells([Ô]Modelo[Ô]).Value
FrmTesteencher.txtCod.Text = DataGridView1.Rows(e.RowIndex).Cells([Ô]Codigo[Ô]).Value
FrmTesteencher.CboLocal.Text = DataGridView1.Rows(e.RowIndex).Cells([Ô]Localidade[Ô]).Value
FrmTesteencher.Show()
End Sub
Sem erro nenhum como citado.
Meu teste.
Private Sub DataGridView1_CellDoubleClick(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellDoubleClick
FrmTesteencher.cmbModelo.Text = DataGridView1.Rows(e.RowIndex).Cells([Ô]Modelo[Ô]).Value
FrmTesteencher.txtCod.Text = DataGridView1.Rows(e.RowIndex).Cells([Ô]Codigo[Ô]).Value
FrmTesteencher.CboLocal.Text = DataGridView1.Rows(e.RowIndex).Cells([Ô]Localidade[Ô]).Value
FrmTesteencher.Show()
End Sub
Sinceramente nao entendi, pq ate testei novamente e nao deu erro, por acaso nao tem algum evento q carregue os combos no load?
mesmo assim está dando errado.
e eu carrego o combobox no evento load do form cadastro, e fica sempre com o mesmo nome, como se fosse estático dai precisa sempre mudar a localidade e o modelo para oque estava antes, se não fica sempre com um nome.
e eu carrego o combobox no evento load do form cadastro, e fica sempre com o mesmo nome, como se fosse estático dai precisa sempre mudar a localidade e o modelo para oque estava antes, se não fica sempre com um nome.
Estive olhando, e cheguei a uma conclusao, qnd vc der 2 cliques no grid, vc poderia definir um valor para a tag do form de cadastro, essa tag seria o codigo do objeto selecionado no grid
Apos os eventos do load do formulario cadastro, vc confere se tag esta diferente de vazio, se sim, dispara o carregamento dos campos para o objeto codigo = tag do formulario, dessa forma vc pode usar o mesmo formulario sinda para cadastrar, alterar ou excluir, no caso um unico botao salvar conferindo a tag do form vc inclui ou altera
Se entendi atualmente vc envia a informacao do q mostrar no combo, depois o evento load carrega outras informacoes q vao sobrepondo as enviadas do form para la inicialmente
Apos os eventos do load do formulario cadastro, vc confere se tag esta diferente de vazio, se sim, dispara o carregamento dos campos para o objeto codigo = tag do formulario, dessa forma vc pode usar o mesmo formulario sinda para cadastrar, alterar ou excluir, no caso um unico botao salvar conferindo a tag do form vc inclui ou altera
Se entendi atualmente vc envia a informacao do q mostrar no combo, depois o evento load carrega outras informacoes q vao sobrepondo as enviadas do form para la inicialmente
é isso que acontece, o combobox sempre transpõe oque eu gravei, e fica mostrando o mesmo texto que foi carregado no inicio, já quando os componentes são colocados no collection, aparece o texto certo que foi gravado.
é como se escolhesse o 5º texto que aparece no combobox, porem quando vou alterar ou excluir fica sempre o 1º texto, sendo que foi gravado foi o 5º texto.
é como se escolhesse o 5º texto que aparece no combobox, porem quando vou alterar ou excluir fica sempre o 1º texto, sendo que foi gravado foi o 5º texto.
Tenta passando o codigo na tag do form, vai ser o valor e um sinalizador se é pra carregar apenas o form ou carregar e preencher
O problema q tem hj esta justamente em vc disparar o valor que quer nos combos e em seguida carregar o form sobrepondo pq o load veio depois dos valores, seria a mesma coisa se no load vc tivesse uma funcao limpar os campos, vc ia chegar no form c os campos em branco
O problema q tem hj esta justamente em vc disparar o valor que quer nos combos e em seguida carregar o form sobrepondo pq o load veio depois dos valores, seria a mesma coisa se no load vc tivesse uma funcao limpar os campos, vc ia chegar no form c os campos em branco
Tópico encerrado , respostas não são mais permitidas