Фокус следующего элемента управления при нажатии клавиши «TAB» - PullRequest
1 голос
/ 06 мая 2009

У меня есть DataGridView, где я управляю сфокусированными ячейками вручную при навигации с помощью клавиши Tab . Например, когда первая ячейка из последней строки является последней, чем можно перемещаться в DataGridView, я хочу, чтобы при нажатии Tab фокус переходил на следующий фокусируемый элемент управления (кнопка).

SendKeys.Send ("{TAB}") не будет работать - фокус переместится на вторую ячейку в последнем ряду

Ответы [ 5 ]

7 голосов
/ 06 мая 2009

Если для свойства StandardTab установлено значение True, поведение клавиши Tab изменится от перехода к следующей ячейке сетки до перехода к следующему элементу управления в форме. Это может быть то, что вы хотите.

Если вы хотите контролировать, какая ячейка сетки / столбец / строка будет сфокусирована, вы можете обработать события ProcessDialogKey и ProcessDataGridViewKey в своем коде.

2 голосов
/ 06 мая 2009

Вы пробовали метод SelectNextControl ?

1 голос
/ 06 мая 2009

Как сказал Руне Гримстад, если вам нужно какое-либо поведение табуляции, отличное от того, которое предусмотрено по умолчанию или StandardTab, вам придется реализовать собственное поведение табуляции.

Создайте новый класс, который наследуется от DataGridView.

protected override bool ProcessDialogKey(Keys keyData)
{
    case Keys.Tab | Keys.Shift:
        // implement your logic here.
        break;
    case Keys.Tab:
        // implement your logic here.
        break;
}
0 голосов
/ 10 декабря 2015

Вы можете просто использовать свойство StandardTab DataGridView .

dataGridView1.StandardTab = true;

Обратите внимание, что пользователь может сделать это с не StandardTab с комбинацией CTRL + TAB , StandardTab полностью изменяет это поведение.

0 голосов
/ 06 мая 2009
Control nextControl = this.dataGridView1.Parent.GetNextControl(this.dataGridView1, true);
Control prevControl = this.dataGridView1.Parent.GetNextControl(this.dataGridView1, false);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...