none
Verificar se o item foi clicado no datagrid RRS feed

  • Pergunta

  • Boa tarde!

    Gente tenho uma dúvida não muito difícil.

    Tenho um datagrid com uma lista de exames com cód e descrição:

    cód   |  Descrição

      1        exame1

      2        exame2

    Preciso fazer uma verificação pra ele não aceitar o mesmo exame inserido no meu texbox. O textbox está recebendo somente a descrição, eu teria que passar também o cód do exame para fazer essa verificação?

    Segue o código do evento doubleclick do meu datagrid:

    private void IncluirExameSelecionado()
            {
                if (DataGExames.SelectedRows.Count == 0)
                {
                    MessageBox.Show("Nenhum exame selecionado.", "Aviso",
                    MessageBoxButtons.OK, MessageBoxIcon.Information);
                    txtPesquisaExame.Focus();
                    return;
                }
                else
                foreach (DataGridViewRow linha in DataGExames.SelectedRows)
                {
                        txtExame1.Text += linha.Cells[1].Value.ToString() + System.Environment.NewLine;
                }
            }

    Alguém pode ajudar com o código?

    sexta-feira, 14 de agosto de 2015 15:02

Respostas

  • Olá,

    Uma ideia seria armazenar cada código selecionado que é lido no seu foreach em uma lista (List<int>) e somente adicionar no textbox a descrição se o código não estiver ainda nesta lista...

    private List<int> Códigos = new List<int>();
    private void IncluirExameSelecionado()
    {
        if (DataGExames.SelectedRows.Count == 0)
        {
            MessageBox.Show("Nenhum exame selecionado.", "Aviso",
            MessageBoxButtons.OK, MessageBoxIcon.Information);
            txtPesquisaExame.Focus();
            return;
        }
        else
            foreach (DataGridViewRow linha in DataGExames.SelectedRows)
            {
                var cod = (int)linha.Cells[0].Value;
                if(!Codigos.Contains(cod))
                {
                    txtExame1.Text += linha.Cells[1].Value.ToString() + System.Environment.NewLine;
                   Códigos.Add(cod);
                }
            }
    }


    Fabio Rosa.

    • Marcado como Resposta Marcos SJ sexta-feira, 14 de agosto de 2015 19:10
    sexta-feira, 14 de agosto de 2015 16:41