none
Listar dados no formulário com o Evento Datagrid_Cell_Double_Click RRS feed

  • 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


    sexta-feira, 16 de novembro de 2012 18:21

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 = _valueContato

    Se 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 do

    ComboBox1_SelectionChangeCommitted é novamente atribuido o novo valor confirmado, entendeu? Espero ter ajudado...qualquer coisa.. é só chamar..

    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.

    sexta-feira, 16 de novembro de 2012 18:30
    Moderador
  • Aqui vou mostrar a imagem do meu sample.

    Crud em 3 Camadas

    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...

    sexta-feira, 16 de novembro de 2012 19:35
  • Fiz até o debug para verificar se ela está sendo recebendo o ID grupo e está funcionando normalmente, o problema é jogar este valor para o combobox que está no form Cadastro e mostrar o valor nele.

    veja ai a imagem.

    Valor da combobox

    sexta-feira, 16 de novembro de 2012 19:52
  • Pessoal Testei aqui para verificar se realmente está sendo enviado o valor para o controle. Eu troquei o combobox por uma textbox. Veja o resultado, está funcionando normalmente, só não funciona com o combobox.Cadastro Contatos

    sábado, 17 de novembro de 2012 14:09
  • 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 = _valueContato

    Se 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 do

    ComboBox1_SelectionChangeCommitted é novamente atribuido o novo valor confirmado, entendeu? Espero ter ajudado...qualquer coisa.. é só chamar..

    segunda-feira, 19 de novembro de 2012 12:02
  • Vlw man funcionou direitinho aqui..muito bem explicado valeu... exatamente isso que estava faltando ... e ainda acabou resolvendo a parte que estava com dificuldade para salvar ou atualizar os registros vlw..muito obrigado..
    segunda-feira, 19 de novembro de 2012 12:03
  • blz..tranquilo... estamos aqui para isso... compartilhar informações ....

    segunda-feira, 19 de novembro de 2012 12:04