none
Link "mailto" - DataGridView RRS feed

  • Pergunta

  • Boa noite,

    Em uma pequena aplicação eu carrego do banco de dados uma lista de contatos e exibo em um DataGridView conforme o exemplo abaixo:

    grid_contatos.DataSource = contatosList.OrderBy(x => x.Nome).ThenBy(x => x.Setor).ToList();

    Um dos campos da lista de contatos é o [e-mail]. Atualmente este campo é exibido como uma simples string, entretanto, eu gostaria de torna-lo um link do tipo "mailto", de modo que o usuário ao clicar, o MS Outlook abra pronto para enviar um e-mail para o respectivo contato.

    Como eu poderia fazer isto?

    quarta-feira, 7 de junho de 2017 22:37

Respostas

  • Boa tarde juniorssz,

    Referência: link

    Você pode usar o seguinte código:

    //Normal

    <a href="mailto:one@two.com">

    //Vários recipientes <a href="mailto:one@two.com,two@three.com">

    //Com Subject <a href="mailto:one@two.com?subject=Comments from MailTo Syntax Page"> // Com cópia <a href="mailto:one@two.com?cc=one@two.com">

    // Com cópia oculta <a href="mailto:one@two.com?bcc=one@two.com"> // Com mensagem iniciada no corpo <a href="mailto:one@two.com?body=I am having trouble finding information on "> // Várias mensagens no corpo do e-mail <a href="mailto:one@two.com?body=Attached message.">


    Att., Roberto Alves

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.


    terça-feira, 27 de junho de 2017 18:19

Todas as Respostas

  • Bom dia, juniorssz.

    Dá uma olhada nesse link:

    https://stackoverflow.com/questions/4261234/hyperlink-an-email-address-using-linklabel-in-c-sharp

    Aqui mostram mais de um jeito de fazer isso. Acredito que atenda o que você precisa.

    quinta-feira, 8 de junho de 2017 12:45
  • Infelizmente não consegui encontrar a forma que preciso...

    O meu List<string> vem "pronto" com todos os campos que preciso exibir no DataGridView.

    O DataGridView, por sua vez, antes de ser "carregado" através do atributo DataSource, está limpo sem nenhum coluna.

    Logo, determinado evento dispara o código que indiquei acima, as colunas do DataGridView são criadas automaticamente e os dados populados.

    Eu queria encontrar uma maneira de transformar o campo Email em link, após o evento que executa o "carregamento" do DataGridView, mas até o momento não encontrei nenhum exemplo similar.

    quinta-feira, 8 de junho de 2017 16:51
  • Mas você quer que na lista, apareça automaticamente o campo EMAIL como um Link? Isso?
    quinta-feira, 8 de junho de 2017 17:06
  • Vou tentar explicar melhor:

    Existe um evento que carrega o DataGridView através do atributo DataSource, conforme mostrado abaixo:

    grid_contatos.DataSource = contatosList.OrderBy(x => x.Nome).ThenBy(x => x.Setor).ToList();

    Da forma como funciona hoje, estes dados são exibidos no DataGridView exatamente como estão no List.

    Uma das colunas exibidas é a do Email e é esta que eu desejo que seja exibida como link no DataGridView, de modo que o usuário possa clicar e enviar um email pelo Outlook.

    Acredito que o caminho deve ser mudar a forma como estou carregando o DataGridView. Hoje ele é carregado "de uma vez" pelo DataSource, mas talvez seja necessário carregar "coluna por coluna" e na coluna do e-mail fazer a "mágica" que transforma ele em link. É essa mágica que eu estou tentando fazer rsrs.



    quinta-feira, 8 de junho de 2017 20:08
  • Vou dar uma pesquisada também, pra chegarmos numa solução! ;)
    quinta-feira, 8 de junho de 2017 20:34
  • Boa tarde juniorssz,

    Referência: link

    Você pode usar o seguinte código:

    //Normal

    <a href="mailto:one@two.com">

    //Vários recipientes <a href="mailto:one@two.com,two@three.com">

    //Com Subject <a href="mailto:one@two.com?subject=Comments from MailTo Syntax Page"> // Com cópia <a href="mailto:one@two.com?cc=one@two.com">

    // Com cópia oculta <a href="mailto:one@two.com?bcc=one@two.com"> // Com mensagem iniciada no corpo <a href="mailto:one@two.com?body=I am having trouble finding information on "> // Várias mensagens no corpo do e-mail <a href="mailto:one@two.com?body=Attached message.">


    Att., Roberto Alves

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.


    terça-feira, 27 de junho de 2017 18:19
  • Boa tarde,

    Por falta de retorno esta thread esta encerrada.

    Por gentileza, caso necessário abra uma nova thread.

    Atenciosamente,


    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quinta-feira, 29 de junho de 2017 17:56
    Moderador