none
Selecionar linha na gridview em tempo de execucao RRS feed

  • Pergunta

  • Ola pessoa tenho uma consultar em uma grid e gostaria de selecionar a linha no momento que encontrar o determinado item, ate conseguir ja fazer a pesquisa e usei um metodo de selecionar a linha porem seleciona so a ultima linha da grid.

    /////

    string buscar = txtPesquisar.Text;


                for (int i = 0; i < dgvItemRequisicao.Rows.Count; i++)
                {
                    if (buscar == dgvItemRequisicao[1, i].Value.ToString())
                    {
                        //pinta a linha e para o for
                        dgvItemRequisicao.Rows[i].DefaultCellStyle.BackColor = Color.Yellow;
                        dgvItemRequisicao.Rows[i].DefaultCellStyle.ForeColor = Color.Red;
                          //selecionar a linha
                        dgvItemRequisicao.CurrentCell = dgvItemRequisicao.Rows[dgvItemRequisicao.Rows.Count - 1].Cells[0];
                        break;
                    }

    Aguardo

    sexta-feira, 1 de setembro de 2017 14:04

Respostas

  • Sigrids,

    aqui funcionou normalmente. Ele estava no evento click do botão de busca.

    Programa em execução

    using System;
    using System.Drawing;
    using System.Linq;
    using System.Windows.Forms;
    
    namespace SelectRow1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
    
                var source = new[]
                {
                    new Tuple<int, string>(1, "Teste1"),
                    new Tuple<int, string>(2, "Teste2"),
                    new Tuple<int, string>(3, "Teste3"),
                    new Tuple<int, string>(4, "Teste1"),
                    new Tuple<int, string>(5, "Teste2"),
                    new Tuple<int, string>(6, "Teste3"),
                    new Tuple<int, string>(7, "Teste1"),
                    new Tuple<int, string>(8, "Teste2"),
                    new Tuple<int, string>(9, "Teste3"),
                };
    
                dataGridView1.DataSource = source;
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                dataGridView1.ClearSelection();
                dataGridView1.Rows.Cast<DataGridViewRow>().
                    Where(row => row.Cells[1].Value.ToString().Contains(textBox1.Text)).ToList().
                    ForEach(row =>
                    {
                        row.DefaultCellStyle.SelectionBackColor = Color.Yellow;
                        row.DefaultCellStyle.SelectionForeColor = Color.Red;
                        row.Selected = true;                    
                    });
            }
        }
    }

    Boa sorte !


    Antero Marques
    _______________________________________________________________________________ 

    Se a resposta for útil, marque como útil, se respondeu totalmente sua dúvida, marque como resposta. O Fórum MSDN é utilizado também como base de conhecimento, então é responsabilidade de todos mantê-lo organizado e funcional.


    sábado, 2 de setembro de 2017 14:53

Todas as Respostas

  • Boa tarde, Sigrids LIma.

    Essa seria uma questão de "Break Fix/Erro" ou "How to/Customização"?

    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.

    sexta-feira, 1 de setembro de 2017 20:46
    Moderador
  • Iria fazer uma customizacao 
    sábado, 2 de setembro de 2017 01:03
  • Olá Sigrids,

    creio que o código abaixo pode te ajudar:

                dataGridView1.ClearSelection();
                dataGridView1.Rows.Cast<DataGridViewRow>().
                    Where(row => row.Cells[1].Value.ToString().Contains(textBox1.Text)).ToList().
                    ForEach(row =>
                    {
                        row.DefaultCellStyle.SelectionBackColor = Color.Yellow;
                        row.DefaultCellStyle.SelectionForeColor = Color.Red;
                        row.Selected = true;                    
                    });


    Antero Marques
    _____________________________________________________________________________ 

    Se a resposta for útil, marque como útil, se respondeu totalmente sua dúvida, marque como resposta. O Fórum MSDN é utilizado também como base de conhecimento, então é responsabilidade de todos mantê-lo organizado e funcional.


    sábado, 2 de setembro de 2017 01:23
  • Antero o codigo nao apresenta nehum erro, mas nao busca nem seleciona a celula.

    • Editado Sigrids LIma sábado, 2 de setembro de 2017 12:43 alteracao no texto
    sábado, 2 de setembro de 2017 12:37
  • Sigrids,

    aqui funcionou normalmente. Ele estava no evento click do botão de busca.

    Programa em execução

    using System;
    using System.Drawing;
    using System.Linq;
    using System.Windows.Forms;
    
    namespace SelectRow1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
    
                var source = new[]
                {
                    new Tuple<int, string>(1, "Teste1"),
                    new Tuple<int, string>(2, "Teste2"),
                    new Tuple<int, string>(3, "Teste3"),
                    new Tuple<int, string>(4, "Teste1"),
                    new Tuple<int, string>(5, "Teste2"),
                    new Tuple<int, string>(6, "Teste3"),
                    new Tuple<int, string>(7, "Teste1"),
                    new Tuple<int, string>(8, "Teste2"),
                    new Tuple<int, string>(9, "Teste3"),
                };
    
                dataGridView1.DataSource = source;
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                dataGridView1.ClearSelection();
                dataGridView1.Rows.Cast<DataGridViewRow>().
                    Where(row => row.Cells[1].Value.ToString().Contains(textBox1.Text)).ToList().
                    ForEach(row =>
                    {
                        row.DefaultCellStyle.SelectionBackColor = Color.Yellow;
                        row.DefaultCellStyle.SelectionForeColor = Color.Red;
                        row.Selected = true;                    
                    });
            }
        }
    }

    Boa sorte !


    Antero Marques
    _______________________________________________________________________________ 

    Se a resposta for útil, marque como útil, se respondeu totalmente sua dúvida, marque como resposta. O Fórum MSDN é utilizado também como base de conhecimento, então é responsabilidade de todos mantê-lo organizado e funcional.


    sábado, 2 de setembro de 2017 14:53
  • Boa tarde,

    Por falta de retorno essa thread está encerrada.

    Se necessário, favor abrir 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.

    terça-feira, 5 de setembro de 2017 18:59
    Moderador