Помощь с Find () в BindingSource - PullRequest
2 голосов
/ 11 марта 2010

Я использую это для поиска значений в моем DataGridView:

private void fndBtn_Click(object sender, EventArgs e)
        {
            BindingSource src = new BindingSource();
            src.DataSource = dataGridView1.DataSource;

            src.Position = src.Find("p_Name", textBox1.Text);
        }

Но у меня есть две проблемы. Сначала, когда я ищу элемент, который не существует в моем dgv, позиция возвращает 0, который по умолчанию является первой строкой. Я не хочу этого, и если я проверю с помощью оператора If, я потеряю позицию 0, потеряв, таким образом, первую строку.

Во-вторых, я хочу, чтобы заголовок строки был сфокусирован, а найденный элемент выделен. Как это возможно?

1 Ответ

4 голосов
/ 11 марта 2010

Используйте источник привязки dataGridView следующим образом:

private void fndBtn_Click(object sender, EventArgs e)
{
    BindingSource src = new BindingSource();
    src.DataSource = dataGridView1.DataSource;
    int findedRow = 0;
    if (textBox1.Text!="")
          findedRow = src.Find("p_Name", textBox1.Text); 
    if (findedRow!=-1)
           src.Position = findedRow ;
}
...