Usuário com melhor resposta
Listar dados no formulário com o Evento Datagrid_Cell_Double_Click

Pergunta
-
Olá galera boa tarde.
Gostaria de uma ajuda no meu event Datagrid_Cell_Double_Click. O problema é o seguinte, tenho este evento no formulário de consultaContatos:
Private Sub gvContatos_CellDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles gvContatos.CellDoubleClick Dim PesID As Integer = 0 Try _objc = New BLLContato() PesID = CInt(gvContatos.Rows(e.RowIndex).Cells(0).Value) _dlinha = _objc.GetEstudante(PesID) 'valida os dados retornados If _dlinha Is Nothing Then MessageBox.Show("Registro não encontrado.", Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Information) Else _objfrmcontact = New Frm_cadastraContato() '"SELECT Pes_End_Id,Pes_End_Endereco,Pes_End_Compl " & _ _objfrmcontact.txtContatoID.Text = _dlinha("Pes_contato_ID").ToString _objfrmcontact.txtNomeContato.Text = _dlinha("Pes_contato_Nome").ToString() _objfrmcontact.txtPhoneContato.Text = _dlinha("Pes_contato_Fone1").ToString() '_objfrmcontact.cbContatosGrupo2.SelectedIndex = _dlinha("Pes_contato_GrupoID" _objfrmcontact.cbContatosGrupo2.SelectedValue = Convert.ToInt32(_dlinha("Pes_contato_GrupoID")).ToString
Ao abrir o Form de CadastroContatos somente o combobox não é setado com valor que informei no evento, por exemplo aqui: "_objfrmcontact.cbContatosGrupo2.SelectedValue = Convert.ToInt32(_dlinha("Pes_contato_GrupoID")).ToString"
No Form CadastroContatos já está sendo listado os grupos dos contatos veja ai:
Private Sub Frm_cadastraContato_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Define o valor do estado das operações no evento load _criar = False _editar = False _carregar = True BtnCriar.Enabled = True BtnEditar.Enabled = True BtnSalvar.Enabled = False BtnDeletar.Enabled = False 'ControlaTextBox(True) Try _objGrup = New BLLGrupoContato() 'define os valores a exibir na combo e obtem a fonte de dados 'para preencher a combobox 'SELECT Pes_grupo_ID,Pes_grupo_Nome " & _ With ComboBox1 .ValueMember = "Pes_grupo_ID" .DisplayMember = "Pes_grupo_Nome" ' obtem os cursos cadastrados .DataSource = _objGrup.TodosGrupos().Tables(0) If .DataSource IsNot Nothing Then .SelectedIndex = 0 End If End With Catch ex As Exception MessageBox.Show(ex.Message, Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Error) Application.ExitThread() : Application.Exit() Finally _objc = Nothing End Try End Sub
Até coloquei um variável para setar o valor logo ao chamar o form..
PrivateSubComboBox1_SelectedIndexChanged(ByValsender AsSystem.Object, ByVale AsSystem.EventArgs) HandlesComboBox1.SelectedIndexChanged
_cursoid = ComboBox1.SelectedIndex
Mas mesmo assim não é listado. Se alguém poder ajudar agradeço..
EndSub
Respostas
-
Colega ...achei um solução ...tente fazer isto aqui no seu método que carrega os controles:
Crie um variável no form de cadastro de contatos, tem que deixar ela visível para os outros form, no caso Public
Dim _valueContato As integer = 0
//No seu evento que preenche os controles:
_objfrmcontact._valueContato = Convert.ToInt32(_dlinha("Pes_contato_GrupoID")).ToString
//Depois é só atribuir o valor da variável para o combobox.
_objfrmcontact.cbContatosGrupo2.SelectedValue = _valueContatoSe tentar roda desta forma vai ter problema quando for salvar ou atualizar o contato então no form de cadastro faça o seguinte:
//Adicione estes dois events no combobox que recebe os valores:
PrivateSubComboBox1_SelectedIndexChanged(ByValsender AsSystem.Object, ByVale AsSystem.EventArgs) HandlesComboBox1.SelectedIndexChanged
ComboBox1.SelectedValue = _valueContato
EndSub
PrivateSubComboBox1_SelectionChangeCommitted(ByValsender AsSystem.Object, ByVale AsSystem.EventArgs) HandlesComboBox1.SelectionChangeCommitted
_valueContato = ComboBox1.SelectedValue
EndSub
Ou seja, quando for atribuído o valor no combobox vai acontecer o ComboBox1_SelectedIndexChanged, assim atribuindo o valor par ao mesmo. Depois que você listar algum item do combobox vai atráves doComboBox1_SelectionChangeCommitted é novamente atribuido o novo valor confirmado, entendeu? Espero ter ajudado...qualquer coisa.. é só chamar..
- Marcado como Resposta Thyago A. Developer segunda-feira, 19 de novembro de 2012 12:02
Todas as Respostas
-
Estas a fazer uma nova pesquiza e mostrar o resultado no form
Frm_cadastraContato_Load?
Este for o caso voce presiza limpar a tua combobox primeiro e depois passar uma nova informacao.
A flower cannot blossom without sunshine, and man cannot live without love.
-
Aqui vou mostrar a imagem do meu sample.
Repare na imagem acima, a ordem dos Grupos ID estão assim: 1 - Cliente, 2- Fornecedor, 3-Funcionário, 4- Outros.
Veja que cliquei num registro que tem a ID Grupo de nº "3-Funcionário", mas não é listado este item na combobox. Todos os outos controles recebem os valores normalmente somente o combobox não está sendo listado. Eu até estou carregando o combobox no Load do Form mas mesmo assim não vai...
-
-
-
Colega ...achei um solução ...tente fazer isto aqui no seu método que carrega os controles:
Crie um variável no form de cadastro de contatos, tem que deixar ela visível para os outros form, no caso Public
Dim _valueContato As integer = 0
//No seu evento que preenche os controles:
_objfrmcontact._valueContato = Convert.ToInt32(_dlinha("Pes_contato_GrupoID")).ToString
//Depois é só atribuir o valor da variável para o combobox.
_objfrmcontact.cbContatosGrupo2.SelectedValue = _valueContatoSe tentar roda desta forma vai ter problema quando for salvar ou atualizar o contato então no form de cadastro faça o seguinte:
//Adicione estes dois events no combobox que recebe os valores:
PrivateSubComboBox1_SelectedIndexChanged(ByValsender AsSystem.Object, ByVale AsSystem.EventArgs) HandlesComboBox1.SelectedIndexChanged
ComboBox1.SelectedValue = _valueContato
EndSub
PrivateSubComboBox1_SelectionChangeCommitted(ByValsender AsSystem.Object, ByVale AsSystem.EventArgs) HandlesComboBox1.SelectionChangeCommitted
_valueContato = ComboBox1.SelectedValue
EndSub
Ou seja, quando for atribuído o valor no combobox vai acontecer o ComboBox1_SelectedIndexChanged, assim atribuindo o valor par ao mesmo. Depois que você listar algum item do combobox vai atráves doComboBox1_SelectionChangeCommitted é novamente atribuido o novo valor confirmado, entendeu? Espero ter ajudado...qualquer coisa.. é só chamar..
- Marcado como Resposta Thyago A. Developer segunda-feira, 19 de novembro de 2012 12:02
-
-