我有一個DataGridView,我在這裏用Tab鍵手動管理聚焦的單元格。例如,當最後一行的第一個單元格是最後一個單元格,而不是DataGridView中可以導航的單元格時,我希望當按下的標籤時,焦點將轉到下一個可調焦控件(一個按鈕)。按下'TAB'鍵時重點控制下一個
SendKeys.Send(「{TAB}」)將無法正常工作 - 重點將轉到第二個單元中的最後一行
我有一個DataGridView,我在這裏用Tab鍵手動管理聚焦的單元格。例如,當最後一行的第一個單元格是最後一個單元格,而不是DataGridView中可以導航的單元格時,我希望當按下的標籤時,焦點將轉到下一個可調焦控件(一個按鈕)。按下'TAB'鍵時重點控制下一個
SendKeys.Send(「{TAB}」)將無法正常工作 - 重點將轉到第二個單元中的最後一行
您是否嘗試過的方法SelectNextControl上?
Control nextControl = this.dataGridView1.Parent.GetNextControl(this.dataGridView1, true);
Control prevControl = this.dataGridView1.Parent.GetNextControl(this.dataGridView1, false);
如果設置StandardTab
屬性爲True,則Tab鍵的行爲將移動到下一個網格單元,以移動到窗體上的下控制來改變。這可能是你想要的。
如果您想控制哪個網格單元格/列/行獲得重點,那麼您可以在代碼中處理ProcessDialogKey
和ProcessDataGridViewKey
事件。
像符文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;
}
您可以簡單地使用DataGridView's StandardTab property。
dataGridView1.StandardTab = true;
注意,用戶可以與非StandardTab與CTRL + TAB 組合做到這一點,StandardTab逆轉這種行爲。
看起來這應該是被接受的答案... – NobodysNightmare 2014-01-13 15:20:43