2015-12-02 76 views
0

當我們按下TAB鍵時,我們將焦點更改爲給定Tab鍵順序中的下一個控件。在我的情況下,當我點擊一個複選框(比如X)時,然後按Tab鍵後控件進入一個文本字段,而不是進入下一個複選框(比如Y)按下。我希望控件移動到複選框Y.謝謝。如何攔截TAB鍵按下以關注在TAB鍵被按下後啓用的複選框?

我有下面的代碼,但是當我按下標籤按鈕未運行:

 if (((e.KeyCode == Keys.Tab && !e.Shift) || e.KeyCode == Keys.Enter) && _resultsGrid.ActiveCell != null) 
     { 
      if (_resultsGrid.ActiveCell.IsInEditMode && (_resultsGrid.ActiveCell == lastEditableCell || e.KeyCode == Keys.Enter)) 
      { 
       DateTime tempDateTime = DateTime.Today; 
       if (!(_resultsGrid.ActiveCell.Column.DataType.ToString() == "System.DateTime" && !System.DateTime.TryParse(_resultsGrid.ActiveCell.Text, out tempDateTime))) 
       { 
        if (_resultsGrid.ActiveCell.Text == "" && (_resultsGrid.ActiveCell.Column.DataType == typeof(System.Int16) || 
         _resultsGrid.ActiveCell.Column.DataType == typeof(System.Int32) || 
         _resultsGrid.ActiveCell.Column.DataType == typeof(System.Int64) || 
         _resultsGrid.ActiveCell.Column.DataType == typeof(System.Decimal))) 
         _resultsGrid.ActiveCell.Value = 0; 
        else 
         _resultsGrid.ActiveCell.Value = _resultsGrid.ActiveCell.Text; 
       } 
       _returnKeyClickedToSaveRow = true; 
       FireSaveEvent(); 
       if (!_saveFailed) 
       { 
        if (e.KeyCode == Keys.Tab) 
        { 
         _checklastkey = true; 
         _resultsGrid.PerformAction(UltraGridAction.CommitRow); 
        } 
        else 
        { 
         _resultsGrid.PerformAction(UltraGridAction.CommitRow); 
         _resultsGrid.PerformAction(UltraGridAction.DeactivateCell); 
        } 
       } 
       _returnKeyClickedToSaveRow = false; 
       this._entityDS.AcceptChanges(); //EAMNET-9811 
      } 
     } 
+0

更改複選框Y的選項卡順序來X後?只要它被禁用,它將被跳過。 – GolezTrol

+1

這聽起來像你使用錯誤的事件來決定啓用複選框Y - 如果複選框X啓用複選框Y,它可能應該在它的檢查事件中執行它 - 聽起來像你在做某事就像一個模糊/離開事件,此時要移動到的下一個控件已經被確定。 –

回答

0

有一個屬性中的每個控制器有被稱爲TabIndex。您可以使用此屬性分配下一個控件,該控件將重點放在TAB鍵上。例如,如果Control1具有TabIndex 1並且Control2具有TabIndex 2,則在按下Control1上的TAB鍵後,Control2將被聚焦。

P.S.由於TabIndex是每個Control中的屬性,您還可以通過更改TabIndex來動態決定下一個控件,以便在任何需要的位置集中焦點。

相關問題