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);
}
}
Если уже у тебя есть реестры, ты должен вновь не помещать ему 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;
}
}
Результат
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;
}
}
}