none
Usando DataGridViewLinkColumn RRS feed

  • Pergunta

  • Galera tenho um datagridView com uma coluna chamada link. Carreguei os dados nessa coluna, mas preciso colocar links para cada item da mesma. Como posso fazer isso ?

    Obrigado


    SirSmart

    sexta-feira, 19 de janeiro de 2018 17:03

Respostas

  • Boa tarde SirSmart,

    Segue abaixo uma exemplificação:

         private void Form1_Load(object sender, EventArgs e)
    
            {
    
                dataGridView1.Columns[1].ReadOnly = true;
    
     
    
                dataGridView1.Rows.Add("www.bing.com", "available");
    
                dataGridView1.Rows.Add(@"d:\", "available");
    
                dataGridView1.Rows.Add("www.google.com", "");
    
                dataGridView1.Rows.Add("www.connectionstrings.com", "unavailable");
    
     
    
                dataGridView1.CellContentClick += new DataGridViewCellEventHandler(dataGridView1_CellContentClick);
    
     
    
                for (int i = 0; i < dataGridView1.Rows.Count; i++)
    
                {
    
                    if (dataGridView1.Rows[i].Cells[1].Value.ToString() != "available")
    
                    {
    
                        // dynamically change DataGridViewCell type to DataGridViewTextboxCell
    
                        DataGridViewTextBoxCell txtcell = new DataGridViewTextBoxCell();
    
                        txtcell.Value = dataGridView1.Rows[i].Cells[1].Value;
    
                        dataGridView1.Rows[i].Cells[1] = txtcell;
    
                    }
    
                }
    
            }
    
     
    
            void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
    
            {
    
                // if current cell is DataGridViewLinkCell
    
                if(dataGridView1[e.ColumnIndex,e.RowIndex].GetType() == typeof(DataGridViewLinkCell))
    
                {     
    
                    System.Diagnostics.Process.Start(dataGridView1[0, e.RowIndex].Value.ToString());  
    
                }
    
            }


     

    Conteúdo adicional:

    FAQ 4. Can I dynamically change the DataGridViewCell type?

     

    DataGridView.CellContentClick Event

     

    DataGridViewLinkColumn Class

     

    URL in datagridview VB.NET thread



    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.

    segunda-feira, 29 de janeiro de 2018 17:09

Todas as Respostas

  • Links apontando para URLs? Ou pretende tratar o evento click delas para executar uma outra ação?

    Juliano Nunes - http://linkedin.com/in/julianonunes

    Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.

    Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.

    sexta-feira, 19 de janeiro de 2018 23:47
  • Boa tarde SirSmart,

    Segue abaixo uma exemplificação:

         private void Form1_Load(object sender, EventArgs e)
    
            {
    
                dataGridView1.Columns[1].ReadOnly = true;
    
     
    
                dataGridView1.Rows.Add("www.bing.com", "available");
    
                dataGridView1.Rows.Add(@"d:\", "available");
    
                dataGridView1.Rows.Add("www.google.com", "");
    
                dataGridView1.Rows.Add("www.connectionstrings.com", "unavailable");
    
     
    
                dataGridView1.CellContentClick += new DataGridViewCellEventHandler(dataGridView1_CellContentClick);
    
     
    
                for (int i = 0; i < dataGridView1.Rows.Count; i++)
    
                {
    
                    if (dataGridView1.Rows[i].Cells[1].Value.ToString() != "available")
    
                    {
    
                        // dynamically change DataGridViewCell type to DataGridViewTextboxCell
    
                        DataGridViewTextBoxCell txtcell = new DataGridViewTextBoxCell();
    
                        txtcell.Value = dataGridView1.Rows[i].Cells[1].Value;
    
                        dataGridView1.Rows[i].Cells[1] = txtcell;
    
                    }
    
                }
    
            }
    
     
    
            void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
    
            {
    
                // if current cell is DataGridViewLinkCell
    
                if(dataGridView1[e.ColumnIndex,e.RowIndex].GetType() == typeof(DataGridViewLinkCell))
    
                {     
    
                    System.Diagnostics.Process.Start(dataGridView1[0, e.RowIndex].Value.ToString());  
    
                }
    
            }


     

    Conteúdo adicional:

    FAQ 4. Can I dynamically change the DataGridViewCell type?

     

    DataGridView.CellContentClick Event

     

    DataGridViewLinkColumn Class

     

    URL in datagridview VB.NET thread



    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.

    segunda-feira, 29 de janeiro de 2018 17:09