2009-05-06 2 views
1

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

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

ответ

0
Control nextControl = this.dataGridView1.Parent.GetNextControl(this.dataGridView1, true); 
Control prevControl = this.dataGridView1.Parent.GetNextControl(this.dataGridView1, false); 
6

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

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

+2

Похоже, что это должен быть принятый ответ ... – NobodysNightmare

1

Как и Руна Гримстад, если вам нужно какое-либо поведение табуляции, отличное от того, которое было предоставлено по умолчанию или 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

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

dataGridView1.StandardTab = true; 

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

Смежные вопросы