2009-05-06 60 views
1

我有一個DataGridView,我在這裏用Tab鍵手動管理聚焦的單元格。例如,當最後一行的第一個單元格是最後一個單元格,而不是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鍵的行爲將移動到下一個網格單元,以移動到窗體上的下控制來改變。這可能是你想要的。

如果您想控制哪個網格單元格/列/行獲得重點,那麼您可以在代碼中處理ProcessDialogKeyProcessDataGridViewKey事件。

+2

看起來這應該是被接受的答案... – NobodysNightmare 2014-01-13 15:20:43

1

像符文Grimstad說,如果你想要任何標籤行爲,而不是默認提供的或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逆轉這種行爲。

相關問題