Поиск первой буквы слова с помощью ввода с клавиатуры в виде сетки данных - PullRequest
0 голосов
/ 15 мая 2011

Мой вопрос заключается в том, как искать начало слова с буквы, которая дается с клавиатуры.Я сделал это, используя код ниже.

Теперь я хочу сделать это для следующего ряда.Как только я найду слово, я хочу перейти к следующему ряду, нажав стрелку вниз.Но когда я нажимаю стрелку вниз, выбранная строка переходит к предыдущей выбранной строке.

Как я могу решить эту проблему?

if (Char.IsLetterOrDigit(e.KeyChar))
{
    if (Char.IsLetter(e.KeyChar))
    {
        for (int i = 0; i < (dgvTestHead.Rows.Count); i++)
        {
            if (dgvTestHead.Rows[i].Cells["Test_Head"].Value.ToString()
                .StartsWith(e.KeyChar.ToString(),
                            true,
                            CultureInfo.InvariantCulture))
            {
                dgvTestHead.ClearSelection();
                dgvTestHead.Rows[i].Cells[0].Selected = true;
                dgvTestHead.FirstDisplayedScrollingRowIndex = i;
                dgvTestHead.Refresh();

                return; // stop looping
            }
        }
    }
}

1 Ответ

1 голос
/ 20 августа 2011

Я думаю, это происходит из-за того, что CurrentRow свойство DataGridView не изменяется.Чтобы установить CurrentRow для выбранной строки (только для чтения), используйте:

dgvTestHead.CurrentCell = dgvTestHead.Rows[i].Cells[0];

, это сработало для меня.

...