Filtro seleccionador en DataGridView

Hola buenas торгует друзьями. alguien sabe Комо puede реализатор грех un filtro para un DataGridView pero básicamente lo que quiero es que me posicione en la primera fila que coincida более дерзкий el orden del contenido DataGridView. Implemente el siguiente código pero básicamente lo que hace es la búsqueda pero меня Листа las coincidencias perdiendo los demás registros y соло ми меня interesaría que me posicionara en la primera coincidencia грешит более дерзкий el orden del contenido.

private void TxtBuscador_KeyUp(object sender, KeyEventArgs e)
        {
            try
            {
                this.Indicador = new DataTable();
                (dataGridView1.DataSource as DataTable).DefaultView.RowFilter = " Nombre LIKE '%" + txtBuscador.Text + "%' ";
            }
            catch (Exception ex)
            {
                MessageBox.Show(string.Format("Error: {0}", ex.Message), "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
2
задан 20.12.2019, 01:48
2 ответа

Если уже у тебя есть реестры, ты должен вновь не помещать ему DataSource различного. Ты должен искать в существующих линиях DataGridView. Следующий cГіdigo может быть упрощенным, но иллюстрирует стратегию: пробегать линии DataGridView, искать совпадение и выбирать линию в случае, если он произойдет. Смени "колонну" на колонну, где ты должен искать стоимость.

foreach (DataGridViewRow row in dataGridView1.Rows)
{
   string valor = row.Cells["columna"].Value;
   string encontrar = '%" + txtBuscador.Text + "%';
   bool encontrado= valor.Like(encontrar);
   if (encontrado){
      row.Selected = true;
   }
}
2
ответ дан 21.12.2019, 12:13
  • 1
    Привет большое спасибо из-за твоего ответа я sirvió дружелюбное достаточно в конце концов изменило немного твой có я говорю, но это был результат. – Erick 20.12.2019, 16:56

Результат

private void Button1_Click(object sender, EventArgs e)
        {
            foreach (DataGridViewRow row in dataGridView1.Rows)
            {
                string valor = row.Cells["Nombre"].Value.ToString();
                string encontrar = "" + txtBuscador.Text + "";
                bool encontrado = valor.StartsWith(encontrar);
                if (encontrado)
                {
                    row.Selected = true;
                    dataGridView1.CurrentCell = dataGridView1.Rows[row.Index].Cells[0];
                    return;
                }
            }
        }
0
ответ дан 21.12.2019, 12:13

Теги

Похожие вопросы